1package entity
 2
 3// Snapshot is the minimal interface that a snapshot need to implement
 4type Snapshot SnapshotT[Operation]
 5
 6// SnapshotT is the minimal interface that a snapshot need to implement
 7type SnapshotT[OpT Operation] interface {
 8	// AllOperations returns all the operations that have been applied to that snapshot, in order
 9	AllOperations() []OpT
10	// AppendOperation add an operation in the list
11	AppendOperation(op OpT)
12}
13
14type CompileToSnapshot[OpT Operation, SnapT Snapshot] interface {
15	// Compile an Entity in an easily usable snapshot
16	Compile() SnapT
17}