entity_format 0.0.34 copy "entity_format: ^0.0.34" to clipboard
entity_format: ^0.0.34 copied to clipboard

unlisted

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();
}
0
likes
0
points
125
downloads

Publisher

verified publisherdreamscenter.com

Weekly Downloads

A code-generation-less serialization library.

License

unknown (license)

Dependencies

collection, kt_dart, protobuf

More

Packages that depend on entity_format