-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Labels
enhancementNew feature or requestNew feature or requestfeedback wantedSuggestions and opinions are neededSuggestions and opinions are needed
Description
Hi (again) ๐
I have this ValueObject implementing a [0.0; 1.0] double inclusive range:
import "package:freezed_annotation/freezed_annotation.dart";
import "package:modddels_annotation_fpdart/modddels_annotation_fpdart.dart";
part 'percentage.modddel.dart';
part 'percentage.freezed.dart';
@Modddel(
validationSteps: [
ValidationStep([Validation("range", FailureType<RangeFailure>())]),
],
)
class Percentage extends SingleValueObject<InvalidPercentage, ValidPercentage>
with _$Percentage {
Percentage._();
factory Percentage(double value) {
return _$Percentage._create(
value: value,
);
}
@override
Option<RangeFailure> validateRange(percentage) {
if (percentage.value < 0.0) {
return some(const RangeFailure.min());
}
if (percentage.value > 1.0) {
return some(const RangeFailure.max());
}
return none();
}
}
@freezed
class RangeFailure extends ValueFailure with _$RangeFailure {
const factory RangeFailure.min() = _Min;
const factory RangeFailure.max() = _Max;
}Which is leveraged in this kind of modddel factories:
class MapLayer extends SimpleEntity<InvalidMapLayer, ValidMapLayer>
with _$MapLayer {
MapLayer._();
factory MapLayer.raster(
{required MapLayerPosition position,
required URI uri,
@validParam bool loaded = false,
@validParam bool enabled = false,
Percentage opacity = 1.0}) {
return _$MapLayer._createRaster(
position: position,
uri: uri,
loaded: loaded,
enabled: enabled,
opacity: opacity,
);
}
// etc.
}The opacity attribute has an error: A value of type 'double' canโt be assigned to a variable of type 'Percentage'.
Should I somehow use Percentage(1.0) instead of the 1.0 literal? In which case I get the (expected) following error: The default value of an optional parameter must be constant.
CodingSoot
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestfeedback wantedSuggestions and opinions are neededSuggestions and opinions are needed