rumil_codec_builder 0.6.0 copy "rumil_codec_builder: ^0.6.0" to clipboard
rumil_codec_builder: ^0.6.0 copied to clipboard

Code generator for rumil_codec: derives BinaryCodec implementations for annotated classes and sealed class hierarchies.

rumil_codec_builder #

Code generator for rumil_codec: derives BinaryCodec and AstEncoder implementations for annotated classes and sealed class hierarchies.

Setup #

Add to pubspec.yaml:

dependencies:
  rumil_codec: ^0.3.0

dev_dependencies:
  rumil_codec_builder: ^0.3.0
  build_runner: ^2.4.0

Binary codec generation #

import 'package:rumil_codec/rumil_codec.dart';

part 'person.codec.g.dart';

@binarySerializable
class Person {
  final String name;
  final int age;
  const Person(this.name, this.age);
}

// Generates: const personCodec = _$PersonCodec();

Sealed class hierarchies generate ordinal-dispatched codecs with exhaustive switch.

AST encoder generation #

import 'package:rumil_codec/rumil_codec.dart';
import 'package:rumil_parsers/rumil_parsers.dart';

part 'person.ast.g.dart';

@astSerializable
class Person {
  final String name;
  final int age;
  const Person(this.name, this.age);
}

// Generates: const personJsonEncoder = _$PersonJsonEncoder();
// Encodes Person to JsonObject with field-by-field encoding.

Run with: dart run build_runner build

See the main README for full documentation.

0
likes
160
points
330
downloads

Documentation

API reference

Publisher

verified publisherardaproject.org

Weekly Downloads

Code generator for rumil_codec: derives BinaryCodec implementations for annotated classes and sealed class hierarchies.

Repository (GitHub)
View/report issues

Topics

#codec #code-generation #build-runner

License

MIT (license)

Dependencies

analyzer, build, rumil_codec, source_gen

More

Packages that depend on rumil_codec_builder