I have set an object created as an enum to a property of an immutable object created with 'freezed'. Additionally, I have created an object that extends the enum object. While I expected it to work without any issues, I cannot use the switch I created as an extension, possibly due to the impact of 'freezed' or the enum. Why can't I use the extended getter?
// Package imports:
import 'package:hive/hive.dart';
part 'post_status.g.dart';
@HiveType(typeId: 10, adapterName: 'PostStatusAdapter')
enum PostStatus {
@HiveField(0)
deleted,
@HiveField(1)
active,
}
extension IsDeletedPostStatus on PostStatus {
bool get isDeleted => switch (this) {
PostStatus.deleted => true,
PostStatus.active => false,
};
}
part 'post_object.freezed.dart';
part 'post_object.g.dart';
@freezed
class PostObject with _$PostObject {
@HiveType(typeId: 1, adapterName: 'PostObjectAdapter')
const factory PostObject({
@HiveField(0) required String? text,
@HiveField(1) required PostStatus? postStatus,
}) = _PostObject;
const PostObject._();
}
An error occurs here (when it doesn't exist).
if(postObject.postStatus.isDeleted){
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}