diff --git a/datum_interface.go b/datum_interface.go new file mode 100644 index 0000000..21cd0e0 --- /dev/null +++ b/datum_interface.go @@ -0,0 +1,25 @@ +package meritop + +// Datum is the interface for basic loading and transformation. +type Datum interface{} + +// DatumIerator allow one to iterate through all the datum in the set. +type DatumIterator interface { + HasNext() bool + Next() Datum +} + +// This can be used to build a sequence of Datum from source. +type DatumIteratorBuilder interface { + Build(path string) DatumIterator +} + +// Transform Datum from one format to another. +type DatumTransformer interface { + Transform(old Datum) Datum +} + +// DatumStore host a set of Datum in the memory. +type DatumStore struct { + Cache []Datum +}