rumil_codec_builder 0.6.0
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.