Create a custom Record
As you can read in the Record and LogLine page,
Baker processes objects called records.
A Record
, in Baker, is an interface that provides an abstraction over a record of flattened data,
where columns of fields are indexed through integers.
If the Record implementations provided by Baker doesn’t fit your needs, you can create your own
version, implementing the Record
inteface.
How to use your Record implementation
Once your Record implementation is ready, you want to let Baker know how to create new instances of it.
To do so, you should create and fill a baker.Components
struct.
The only required field to set is the CreateRecord
, which returns a new instance of your custom record struct
.
(see more details at CreateRecord).
comp := baker.Components{
CreateRecord: func() baker.Record {
return &MyCustomRecord{}
},
// ... other configuration
}
The other configuration of the baker.Components
, namely Validation, FieldByName, and FieldNames,
could be configured also through the TOML configuration. Although, if your own record needs a more specific
implementation you can implement them using compiled Go code, see FieldByName
,
FieldNames
, Validation
documentation.
Record conformance test
test_helper.go
provides a test helper, RecordConformanceTest
, one can and should use to verify their
custom Record
satisfies the invariants required for any Record
implementation.
Just pass to RecordConformanceTest
a factory function creating new instances of your Record
.