m3_lightmeter/lib/models/photography_value.dart

23 lines
669 B
Dart
Raw Normal View History

2022-10-25 19:53:39 +00:00
part 'aperture_value.dart';
part 'iso_value.dart';
part 'shutter_speed_value.dart';
enum Stop { full, half, third }
abstract class PhotographyValue<T> {
final T rawValue;
final Stop stopType;
const PhotographyValue(this.rawValue, this.stopType);
T get value;
}
extension PhotographyValues<T> on List<PhotographyValue<T>> {
List<PhotographyValue<T>> fullStops() => where((e) => e.stopType == Stop.full).toList();
List<PhotographyValue<T>> halfStops() => where((e) => e.stopType == Stop.full || e.stopType == Stop.half).toList();
List<PhotographyValue<T>> thirdStops() => where((e) => e.stopType == Stop.full || e.stopType == Stop.third).toList();
}