import 'package:hive/hive.dart'; @HiveType(typeId: 0) final class Config extends HiveObject { @HiveField(0) String name = ''; @HiveField(1) String config = ''; } class ConfigAdapter extends TypeAdapter { @override final int typeId = 0; @override Config read(BinaryReader reader) { final int fieldsCount = reader.readByte(); final Map fields = { for (int i = 0; i < fieldsCount; i++) reader.readByte(): reader.read(), }; return Config() ..name = fields[0] as String? ?? '' ..config = fields[1] as String? ?? ''; } @override void write(BinaryWriter writer, Config obj) { writer ..writeByte(2) ..writeByte(0) ..write(obj.name) ..writeByte(1) ..write(obj.config); } }