entity_format 0.0.47
entity_format: ^0.0.47 copied to clipboard
A code-generation-less serialization library.
example/entity_format_example.dart
import 'package:entity_format/entity_format.dart';
class User {
final String firstName;
final String lastName;
final Object ulid;
static const firstNameField = Field('firstName');
static const lastNameField = Field('lastName');
static const ulidField = Field('ulid');
User({
required this.firstName,
required this.lastName,
required this.ulid,
});
User.deserialize(Serialized serialized, Config config)
: firstName = serialized.nextString(firstNameField)!,
lastName = serialized.nextString(lastNameField)!,
ulid = deserializeUlid(serialized, config);
Serialized serialize(Config config) {
return Serialized.object({
firstNameField: Serialized.string(firstName),
lastNameField: Serialized.string(lastName),
ulidField: serializeUlid(ulid, config),
});
}
}
Object deserializeUlid(Serialized serialized, Object? config) {
return serialized.asString()!;
}
Serialized serializeUlid(Object ulid, Object? config) {
return Serialized.string(ulid.toString());
}
class Config {}
Serialized serializeUser(User user, Object? config) {
return Serialized.object({
User.firstNameField: Serialized.string(user.firstName),
User.lastNameField: Serialized.string(user.lastName),
User.ulidField: serializeUlid(user.ulid, config),
});
}
void main() {
final user = User(firstName: 'firstName', lastName: 'lastName', ulid: Object());
final bytes = serializeUser(user, null).toBytes();
}