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.

Libraries

rumil_codec_builder
Builder factories for build_runner integration.