Union of Modddels Overview
@freezed
class Weather with _$Weather {
const factory Weather.sunny({
required int temperature,
}) = _Sunny;
const factory Weather.rainy({
required int temperature,
required double rainIntensity,
}) = _Rainy;
}@Modddel(
validationSteps: [
ValidationStep([
Validation('habitable', FailureType<WeatherHabitableFailure>()),
]),
],
)
class Weather extends MultiValueObject<InvalidWeather, ValidWeather>
with _$Weather {
Weather._();
factory Weather.sunny({
required int temperature,
}) {
return _$Weather._createSunny(
temperature: temperature,
);
}
factory Weather.rainy({
required int temperature,
required double rainIntensity,
}) {
return _$Weather._createRainy(
temperature: temperature,
rainIntensity: rainIntensity,
);
}
@override
Option<WeatherHabitableFailure> validateHabitable(weather) {
// TODO: implement validateHabitable
return none();
}
}
@freezed
class WeatherHabitableFailure extends ValueFailure with _$WeatherHabitableFailure {
const factory WeatherHabitableFailure.tooHot() = _TooHot;
const factory WeatherHabitableFailure.tooCold() = _TooCold;
const factory WeatherHabitableFailure.flooding() = _Flooding;
}

Super-sealed class
Case-modddels
Last updated