SYMBOL INDEX (328 symbols across 54 files) FILE: aggregate/aggregate.go type aggregate (line 17) | type aggregate interface function Load (line 24) | func Load(ctx context.Context, es core.EventStore, id string, a aggregat... function LoadFromSnapshot (line 56) | func LoadFromSnapshot(ctx context.Context, es core.EventStore, ss core.S... function Save (line 65) | func Save(es core.EventStore, a aggregate) error { function Register (line 93) | func Register(a aggregate) { function saveEvents (line 98) | func saveEvents(eventStore core.EventStore, events []eventsourcing.Event... function getEvents (line 139) | func getEvents(ctx context.Context, eventStore core.EventStore, id, aggr... FILE: aggregate/aggregate_test.go function TestSaveAndLoadAggregate (line 13) | func TestSaveAndLoadAggregate(t *testing.T) { function TestLoadAggregateFromSnapshot (line 48) | func TestLoadAggregateFromSnapshot(t *testing.T) { function TestLoadNoneExistingAggregate (line 83) | func TestLoadNoneExistingAggregate(t *testing.T) { FILE: aggregate/idgenerator.go function SetIDFunc (line 13) | func SetIDFunc(f func() string) { function randSeq (line 17) | func randSeq() string { function generateRandomString (line 25) | func generateRandomString(n int) (string, error) { function generateRandomBytes (line 37) | func generateRandomBytes(n int) ([]byte, error) { FILE: aggregate/root.go type Root (line 12) | type Root struct method nextVersion (line 64) | func (ar *Root) nextVersion() core.Version { method SetID (line 69) | func (ar *Root) SetID(id string) error { method ID (line 78) | func (ar *Root) ID() string { method root (line 85) | func (ar *Root) root() *Root { method Version (line 90) | func (ar *Root) Version() eventsourcing.Version { method GlobalVersion (line 98) | func (ar *Root) GlobalVersion() eventsourcing.Version { method Events (line 106) | func (ar *Root) Events() []eventsourcing.Event { method UnsavedEvents (line 116) | func (ar *Root) UnsavedEvents() bool { constant emptyID (line 19) | emptyID = "" function TrackChange (line 23) | func TrackChange(a aggregate, data interface{}) { function TrackChangeWithMetadata (line 30) | func TrackChangeWithMetadata(a aggregate, data interface{}, metadata map... function buildFromHistory (line 52) | func buildFromHistory(a aggregate, events []eventsourcing.Event) { function aggregateType (line 120) | func aggregateType(a interface{}) string { FILE: aggregate/root_test.go type Person (line 15) | type Person struct method GrowOlder (line 59) | func (person *Person) GrowOlder() { method Register (line 66) | func (person *Person) Register(f aggregate.RegisterFunc) { method Transition (line 71) | func (person *Person) Transition(event eventsourcing.Event) { method SerializeSnapshot (line 81) | func (person *Person) SerializeSnapshot(aggregate.SnapshotMarshal) ([]... method DeserializeSnapshot (line 84) | func (person *Person) DeserializeSnapshot(f aggregate.SnapshotUnmarsha... type Born (line 23) | type Born struct type AgedOneYear (line 28) | type AgedOneYear struct function CreatePerson (line 32) | func CreatePerson(name string) (*Person, error) { function CreatePersonWithID (line 42) | func CreatePersonWithID(id, name string) (*Person, error) { function TestPersonWithNoEvents (line 88) | func TestPersonWithNoEvents(t *testing.T) { function TestCreateNewPerson (line 95) | func TestCreateNewPerson(t *testing.T) { function TestCreateNewPersonWithIDFromOutside (line 135) | func TestCreateNewPersonWithIDFromOutside(t *testing.T) { function TestBlankName (line 147) | func TestBlankName(t *testing.T) { function TestSetIDOnExistingPerson (line 154) | func TestSetIDOnExistingPerson(t *testing.T) { function TestPersonAgedOneYear (line 166) | func TestPersonAgedOneYear(t *testing.T) { function TestPersonGrewTenYears (line 193) | func TestPersonGrewTenYears(t *testing.T) { function TestSetIDFunc (line 204) | func TestSetIDFunc(t *testing.T) { function TestIDFuncGeneratingRandomIDs (line 220) | func TestIDFuncGeneratingRandomIDs(t *testing.T) { FILE: aggregate/snapshot.go type SnapshotMarshal (line 13) | type SnapshotMarshal type SnapshotUnmarshal (line 14) | type SnapshotUnmarshal type snapshot (line 17) | type snapshot interface type aggregateSnapshot (line 23) | type aggregateSnapshot interface function LoadSnapshot (line 30) | func LoadSnapshot(ctx context.Context, ss core.SnapshotStore, id string,... function getSnapshot (line 41) | func getSnapshot(ctx context.Context, ss core.SnapshotStore, id string, ... function SaveSnapshot (line 62) | func SaveSnapshot(ss core.SnapshotStore, s snapshot) error { FILE: aggregate/snapshot_test.go function createPerson (line 15) | func createPerson() *Person { function TestSaveAndGetSnapshot (line 27) | func TestSaveAndGetSnapshot(t *testing.T) { function TestGetNoneExistingSnapshotOrEvents (line 55) | func TestGetNoneExistingSnapshotOrEvents(t *testing.T) { function TestGetNoneExistingSnapshot (line 65) | func TestGetNoneExistingSnapshot(t *testing.T) { function TestSaveSnapshotWithUnsavedEvents (line 75) | func TestSaveSnapshotWithUnsavedEvents(t *testing.T) { type snapshot (line 89) | type snapshot struct method Command (line 110) | func (s *snapshot) Command() { method Transition (line 115) | func (s *snapshot) Transition(e eventsourcing.Event) { method Register (line 127) | func (s *snapshot) Register(f aggregate.RegisterFunc) { method SerializeSnapshot (line 136) | func (s *snapshot) SerializeSnapshot(f aggregate.SnapshotMarshal) ([]b... method DeserializeSnapshot (line 144) | func (s *snapshot) DeserializeSnapshot(f aggregate.SnapshotUnmarshal, ... type Event (line 97) | type Event struct type Event2 (line 98) | type Event2 struct function New (line 100) | func New() *snapshot { type snapshotInternal (line 131) | type snapshotInternal struct function TestSnapshotNoneExported (line 155) | func TestSnapshotNoneExported(t *testing.T) { FILE: core/event.go type Version (line 8) | type Version type Event (line 11) | type Event struct FILE: core/eventstore.go type Iterator (line 12) | type Iterator interface type EventStore (line 19) | type EventStore interface FILE: core/fetcher.go type Fetcher (line 4) | type Fetcher FILE: core/snapshotstore.go type Snapshot (line 12) | type Snapshot struct type SnapshotStore (line 21) | type SnapshotStore interface FILE: core/testsuite/eventstoresuite.go function AggregateID (line 18) | func AggregateID() string { type Status (line 26) | type Status constant StatusRed (line 29) | StatusRed Status = iota constant StatusSilver (line 30) | StatusSilver Status = iota constant StatusGold (line 31) | StatusGold Status = iota type FrequentFlierAccountCreated (line 34) | type FrequentFlierAccountCreated struct type StatusMatched (line 40) | type StatusMatched struct type FlightTaken (line 44) | type FlightTaken struct function eventToByte (line 52) | func eventToByte(i interface{}) []byte { function testEvents (line 57) | func testEvents(aggregateID string) []core.Event { function testEventsPartTwo (line 71) | func testEventsPartTwo(aggregateID string) []core.Event { function testEventOtherAggregate (line 79) | func testEventOtherAggregate(aggregateID string) core.Event { function Test (line 83) | func Test(t *testing.T, esFunc eventstoreFunc) { function saveAndGetEvents (line 112) | func saveAndGetEvents(es core.EventStore) error { function getEventsAfterVersion (line 181) | func getEventsAfterVersion(es core.EventStore) error { function saveEventsInWrongVersion (line 213) | func saveEventsInWrongVersion(es core.EventStore) error { function saveAndGetEventsConcurrently (line 224) | func saveAndGetEventsConcurrently(es core.EventStore) error { function getErrWhenNoEvents (line 277) | func getErrWhenNoEvents(es core.EventStore) error { function saveReturnGlobalEventOrder (line 290) | func saveReturnGlobalEventOrder(es core.EventStore) error { FILE: core/testsuite/fetcher.go function TestFetcher (line 10) | func TestFetcher(t *testing.T, es core.EventStore, fetcher core.Fetcher) { function verify (line 55) | func verify(iter core.Iterator, globalVersion core.Version, expEvents []... FILE: core/testsuite/snapshotstoresuite.go function TestSnapshotStore (line 14) | func TestSnapshotStore(t *testing.T, ssFunc snapshotstoreFunc) { function saveAndGetSnapshot (line 39) | func saveAndGetSnapshot(ss core.SnapshotStore) error { function getNoneExistingSnapshot (line 77) | func getNoneExistingSnapshot(ss core.SnapshotStore) error { FILE: event.go type Version (line 11) | type Version type Event (line 13) | type Event struct method Data (line 23) | func (e Event) Data() interface{} { method Metadata (line 27) | func (e Event) Metadata() map[string]interface{} { method AggregateType (line 31) | func (e Event) AggregateType() string { method AggregateID (line 35) | func (e Event) AggregateID() string { method Reason (line 39) | func (e Event) Reason() string { method Version (line 46) | func (e Event) Version() Version { method Timestamp (line 50) | func (e Event) Timestamp() time.Time { method GlobalVersion (line 54) | func (e Event) GlobalVersion() Version { function NewEvent (line 19) | func NewEvent(e core.Event, data interface{}, metadata map[string]interf... FILE: eventsourcing.go type Encoder (line 33) | type Encoder interface function SetEventEncoder (line 39) | func SetEventEncoder(e Encoder) { function SetSnapshotEncoder (line 44) | func SetSnapshotEncoder(e Encoder) { FILE: eventstore/bbolt/bbolt.go constant globalEventOrderBucketName (line 16) | globalEventOrderBucketName = "global_event_order" type BBolt (line 20) | type BBolt struct method Save (line 61) | func (e *BBolt) Save(events []core.Event) error { method Get (line 158) | func (e *BBolt) Get(ctx context.Context, id string, aggregateType stri... method All (line 172) | func (e *BBolt) All(start core.Version) core.Fetcher { method Close (line 199) | func (e *BBolt) Close() error { method createBucket (line 204) | func (e *BBolt) createBucket(bucketRef []byte, tx *bbolt.Tx) error { type boltEvent (line 24) | type boltEvent struct function New (line 37) | func New(dbFile string) (*BBolt, error) { function bucketRef (line 213) | func bucketRef(aggregateType, aggregateID string) []byte { function position (line 218) | func position(p core.Version) []byte { function itob (line 223) | func itob(v uint64) []byte { FILE: eventstore/bbolt/bbolt_test.go function TestEventStoreSuite (line 12) | func TestEventStoreSuite(t *testing.T) { function TestFetchFuncAll (line 27) | func TestFetchFuncAll(t *testing.T) { FILE: eventstore/bbolt/iterator.go type Iterator (line 12) | type Iterator struct method Close (line 21) | func (i *Iterator) Close() { method Next (line 25) | func (i *Iterator) Next() bool { method Value (line 43) | func (i *Iterator) Value() (core.Event, error) { FILE: eventstore/esdb/esdb.go constant streamSeparator (line 10) | streamSeparator = "-" type ESDB (line 13) | type ESDB struct method Save (line 32) | func (es *ESDB) Save(events []core.Event) error { method Get (line 80) | func (es *ESDB) Get(ctx context.Context, id string, aggregateType stri... function Open (line 19) | func Open(client *esdb.Client, jsonSerializer bool) *ESDB { function stream (line 96) | func stream(aggregateType, aggregateID string) string { FILE: eventstore/esdb/esdb_test.go function TestSuite (line 16) | func TestSuite(t *testing.T) { FILE: eventstore/esdb/iterator.go type Iterator (line 10) | type Iterator struct method Close (line 16) | func (i *Iterator) Close() { method Next (line 21) | func (i *Iterator) Next() bool { method Value (line 34) | func (i *Iterator) Value() (core.Event, error) { FILE: eventstore/kurrent/iterator.go type Iterator (line 10) | type Iterator struct method Close (line 16) | func (i *Iterator) Close() { method Next (line 21) | func (i *Iterator) Next() bool { method Value (line 34) | func (i *Iterator) Value() (core.Event, error) { FILE: eventstore/kurrent/kurrent.go constant streamSeparator (line 10) | streamSeparator = "-" type Kurrent (line 13) | type Kurrent struct method Save (line 32) | func (es *Kurrent) Save(events []core.Event) error { method Get (line 80) | func (es *Kurrent) Get(ctx context.Context, id string, aggregateType s... function Open (line 19) | func Open(client *kurrentdb.Client, jsonSerializer bool) *Kurrent { function stream (line 96) | func stream(aggregateType, aggregateID string) string { FILE: eventstore/kurrent/kurrent_test.go function TestSuite (line 16) | func TestSuite(t *testing.T) { FILE: eventstore/memory/iterator.go type iterator (line 5) | type iterator struct method Next (line 11) | func (i *iterator) Next() bool { method Value (line 20) | func (i *iterator) Value() (core.Event, error) { method Close (line 24) | func (i *iterator) Close() { FILE: eventstore/memory/memory.go type Memory (line 11) | type Memory struct method Save (line 26) | func (e *Memory) Save(events []core.Event) error { method Get (line 69) | func (e *Memory) Get(ctx context.Context, id string, aggregateType str... method Close (line 84) | func (e *Memory) Close() {} method globalEvents (line 92) | func (e *Memory) globalEvents(start core.Version, count uint64) ([]cor... method All (line 112) | func (m *Memory) All(start core.Version, count uint64) core.Fetcher { function Create (line 18) | func Create() *Memory { function aggregateKey (line 87) | func aggregateKey(aggregateType, aggregateID string) string { FILE: eventstore/memory/memory_test.go function TestEventStore (line 11) | func TestEventStore(t *testing.T) { function TestFetcherAll (line 19) | func TestFetcherAll(t *testing.T) { FILE: eventstore/sql/iterator.go type Iterator (line 10) | type Iterator struct method Next (line 16) | func (i *Iterator) Next() bool { method Value (line 21) | func (i *Iterator) Value() (core.Event, error) { method Close (line 51) | func (i *Iterator) Close() { FILE: eventstore/sql/migrate.go function migrate (line 8) | func migrate(db *sql.DB, stm []string) error { FILE: eventstore/sql/postgres.go type Postgres (line 29) | type Postgres struct method Close (line 47) | func (s *Postgres) Close() { method Save (line 52) | func (s *Postgres) Save(events []core.Event) error { method Get (line 105) | func (s *Postgres) Get(ctx context.Context, id string, aggregateType s... method All (line 115) | func (s *Postgres) All(start core.Version) core.Fetcher { function NewPostgres (line 35) | func NewPostgres(db *sql.DB) (*Postgres, error) { FILE: eventstore/sql/postgres_test.go function TestSuitePostgres (line 19) | func TestSuitePostgres(t *testing.T) { function TestFetcherAllPostgres (line 36) | func TestFetcherAllPostgres(t *testing.T) { function postgresServer (line 50) | func postgresServer() (string, func(), error) { function postgreConnect (line 83) | func postgreConnect(dsn string) (*sql.Postgres, error) { FILE: eventstore/sql/sqlite.go type SQLite (line 30) | type SQLite struct method Close (line 66) | func (s *SQLite) Close() { method Save (line 71) | func (s *SQLite) Save(events []core.Event) error { method Get (line 128) | func (s *SQLite) Get(ctx context.Context, id string, aggregateType str... method All (line 138) | func (s *SQLite) All(start core.Version) core.Fetcher { function NewSQLite (line 36) | func NewSQLite(db *sql.DB) (*SQLite, error) { function NewSQLiteSingelWriter (line 55) | func NewSQLiteSingelWriter(db *sql.DB) (*SQLite, error) { FILE: eventstore/sql/sqlite_test.go function TestSuiteSQLite (line 15) | func TestSuiteSQLite(t *testing.T) { function TestSuiteSQLiteSingelWriter (line 22) | func TestSuiteSQLiteSingelWriter(t *testing.T) { function TestFetchFuncAll (line 28) | func TestFetchFuncAll(t *testing.T) { function eventstore (line 37) | func eventstore(singelWriter bool) (*sql.SQLite, func(), error) { FILE: eventstore/sql/sqlserver.go constant createTableSQLServer (line 14) | createTableSQLServer = `IF OBJECT_ID('[events]', 'U') IS NULL constant indexSQLServer (line 29) | indexSQLServer = `IF NOT EXISTS ( type SQLServer (line 44) | type SQLServer struct method Close (line 60) | func (s *SQLServer) Close() { method Save (line 65) | func (s *SQLServer) Save(events []core.Event) error { method Get (line 129) | func (s *SQLServer) Get(ctx context.Context, id string, aggregateType ... method All (line 142) | func (s *SQLServer) All(start core.Version) core.Fetcher { function NewSQLServer (line 50) | func NewSQLServer(db *sql.DB) (*SQLServer, error) { FILE: eventstore/sql/sqlserver_test.go function TestSuiteSQLServer (line 19) | func TestSuiteSQLServer(t *testing.T) { function TestFetcherAllSQLServer (line 36) | func TestFetcherAllSQLServer(t *testing.T) { function sqlServerConnect (line 51) | func sqlServerConnect(dsn string) (*sql.SQLServer, error) { function sqlServer (line 69) | func sqlServer() (string, func(), error) { FILE: example/order/cmd/main.go type Order (line 14) | type Order struct function main (line 19) | func main() { FILE: example/order/order.go type Status (line 10) | type Status constant Pending (line 13) | Pending Status = "pending" constant Complete (line 14) | Complete Status = "complete" type Order (line 27) | type Order struct method Transition (line 37) | func (o *Order) Transition(event eventsourcing.Event) { method Register (line 62) | func (o *Order) Register(r aggregate.RegisterFunc) { method AddDiscount (line 110) | func (o *Order) AddDiscount(percentage uint) error { method RemoveDiscount (line 134) | func (o *Order) RemoveDiscount() { method Pay (line 145) | func (o *Order) Pay(amount uint) error { type Created (line 73) | type Created struct type DiscountApplied (line 78) | type DiscountApplied struct type DiscountRemoved (line 84) | type DiscountRemoved struct type Paid (line 87) | type Paid struct type Completed (line 92) | type Completed struct function Create (line 99) | func Create(amount uint) (*Order, error) { FILE: example/order/order_test.go function TestCreateOrder (line 9) | func TestCreateOrder(t *testing.T) { function TestDiscount (line 30) | func TestDiscount(t *testing.T) { function TestPaid (line 63) | func TestPaid(t *testing.T) { FILE: example/tictactoe/cmd/main/main.go function main (line 12) | func main() { function PlayGame (line 23) | func PlayGame() *tictactoe.Game { FILE: example/tictactoe/tictactoe.go type Game (line 10) | type Game struct method Transition (line 21) | func (g *Game) Transition(event eventsourcing.Event) { method Register (line 44) | func (g *Game) Register(f aggregate.RegisterFunc) { method Turn (line 82) | func (g *Game) Turn() string { method Done (line 86) | func (g *Game) Done() bool { method Winner (line 90) | func (g *Game) Winner() string { method Render (line 95) | func (g *Game) Render() { method PlayMove (line 115) | func (g *Game) PlayMove(x, y int) error { type Started (line 51) | type Started struct type XMoved (line 54) | type XMoved struct type OMoved (line 60) | type OMoved struct type XWon (line 66) | type XWon struct type OWon (line 69) | type OWon struct type Draw (line 72) | type Draw struct function NewGame (line 75) | func NewGame() *Game { function checkWinner (line 149) | func checkWinner(board [3][3]string) string { function isDraw (line 172) | func isDraw(board [3][3]string) bool { FILE: example/tictactoe/tictactoe_test.go function TestValidMove (line 9) | func TestValidMove(t *testing.T) { function TestInvalidMoveAlreadyTaken (line 34) | func TestInvalidMoveAlreadyTaken(t *testing.T) { function TestTurnSwitching (line 43) | func TestTurnSwitching(t *testing.T) { function TestWinDetection (line 51) | func TestWinDetection(t *testing.T) { function TestDrawDetection (line 71) | func TestDrawDetection(t *testing.T) { FILE: internal/encoderjson.go type EncoderJSON (line 5) | type EncoderJSON struct method Serialize (line 7) | func (e EncoderJSON) Serialize(v interface{}) ([]byte, error) { method Deserialize (line 11) | func (e EncoderJSON) Deserialize(data []byte, v interface{}) error { type encoder (line 15) | type encoder interface FILE: internal/register.go type register (line 11) | type register struct method AggregateRegistered (line 37) | func (r *register) AggregateRegistered(a aggregate) bool { method EventRegistered (line 45) | func (r *register) EventRegistered(event core.Event) (registerFunc, bo... method Register (line 51) | func (r *register) Register(a aggregate) { method RegisterAggregate (line 57) | func (r *register) RegisterAggregate(aggregateType string) func(events... type aggregate (line 17) | type aggregate interface function ResetRegister (line 25) | func ResetRegister() { function newRegister (line 29) | func newRegister() *register { function eventToFunc (line 79) | func eventToFunc(event interface{}) registerFunc { function aggregateType (line 86) | func aggregateType(a aggregate) string { FILE: iterator.go type Iterator (line 10) | type Iterator struct method Close (line 15) | func (i *Iterator) Close() { method Next (line 19) | func (i *Iterator) Next() bool { method Value (line 23) | func (i *Iterator) Value() (Event, error) { FILE: projections.go type callbackFunc (line 13) | type callbackFunc type Projection (line 18) | type Projection struct method TriggerAsync (line 57) | func (p *Projection) TriggerAsync() { method TriggerSync (line 69) | func (p *Projection) TriggerSync() { method Run (line 84) | func (p *Projection) Run(ctx context.Context, pace time.Duration) error { method RunToEnd (line 118) | func (p *Projection) RunToEnd(ctx context.Context) ProjectionResult { method RunOnce (line 145) | func (p *Projection) RunOnce() (bool, ProjectionResult) { type ProjectionGroup (line 28) | type ProjectionGroup struct method Start (line 193) | func (g *ProjectionGroup) Start() { method TriggerAsync (line 211) | func (g *ProjectionGroup) TriggerAsync() { method TriggerSync (line 218) | func (g *ProjectionGroup) TriggerSync() { method Stop (line 231) | func (g *ProjectionGroup) Stop() { type ProjectionResult (line 37) | type ProjectionResult struct function NewProjection (line 44) | func NewProjection(fetchF core.Fetcher, callbackF callbackFunc) *Project... function NewProjectionGroup (line 183) | func NewProjectionGroup(projections ...*Projection) *ProjectionGroup { function ProjectionsRace (line 248) | func ProjectionsRace(cancelOnError bool, projections ...*Projection) ([]... FILE: projections_test.go type Person (line 19) | type Person struct method Transition (line 46) | func (person *Person) Transition(event eventsourcing.Event) { method Register (line 57) | func (person *Person) Register(f aggregate.RegisterFunc) { method GrowOlder (line 62) | func (person *Person) GrowOlder() { type Born (line 27) | type Born struct type AgedOneYear (line 32) | type AgedOneYear struct function CreatePerson (line 36) | func CreatePerson(name string) (*Person, error) { function createPersonEvent (line 68) | func createPersonEvent(es *memory.Memory, name string, age int) error { function TestRunOnce (line 98) | func TestRunOnce(t *testing.T) { function TestRun (line 151) | func TestRun(t *testing.T) { function TestRunSameProjectionConcurrently (line 186) | func TestRunSameProjectionConcurrently(t *testing.T) { function TestTriggerSync (line 223) | func TestTriggerSync(t *testing.T) { function TestTriggerAsync (line 267) | func TestTriggerAsync(t *testing.T) { function TestCloseEmptyGroup (line 320) | func TestCloseEmptyGroup(t *testing.T) { function TestStartMultipleProjections (line 328) | func TestStartMultipleProjections(t *testing.T) { function TestErrorFromCallback (line 347) | func TestErrorFromCallback(t *testing.T) { function TestStrict (line 386) | func TestStrict(t *testing.T) { function TestRace (line 407) | func TestRace(t *testing.T) { function TestKeepStartPosition (line 457) | func TestKeepStartPosition(t *testing.T) { FILE: snapshotstore/memory/memory.go type Memory (line 9) | type Memory struct method Close (line 20) | func (m *Memory) Close() { method Get (line 24) | func (m *Memory) Get(ctx context.Context, aggregateID, aggregateType s... method Save (line 32) | func (m *Memory) Save(snapshot core.Snapshot) error { function Create (line 14) | func Create() *Memory { FILE: snapshotstore/memory/memory_test.go function TestSuite (line 11) | func TestSuite(t *testing.T) { FILE: snapshotstore/sql/migrate.go function migrate (line 8) | func migrate(db *sql.DB, stm []string) error { FILE: snapshotstore/sql/postgres.go constant createTablePostgres (line 12) | createTablePostgres = `CREATE TABLE IF NOT EXISTS snapshots ( constant createIndexPostgres (line 20) | createIndexPostgres = `CREATE UNIQUE INDEX IF NOT EXISTS id_type ON snap... type Postgres (line 22) | type Postgres struct method Close (line 40) | func (s *Postgres) Close() { method Save (line 45) | func (s *Postgres) Save(snapshot core.Snapshot) error { method Get (line 77) | func (s *Postgres) Get(ctx context.Context, aggregateID, aggregateType... function NewPostgres (line 27) | func NewPostgres(db *sql.DB) (*Postgres, error) { FILE: snapshotstore/sql/postgres_test.go function TestSuitePostgres (line 19) | func TestSuitePostgres(t *testing.T) { FILE: snapshotstore/sql/sqlite.go constant createTableSQLite (line 12) | createTableSQLite = ` constant createIndexSQLite (line 21) | createIndexSQLite = `CREATE UNIQUE INDEX IF NOT EXISTS id_type ON snapsh... type SQLite (line 23) | type SQLite struct method Close (line 41) | func (s *SQLite) Close() { method Save (line 46) | func (s *SQLite) Save(snapshot core.Snapshot) error { method Get (line 78) | func (s *SQLite) Get(ctx context.Context, aggregateID, aggregateType s... function NewSQLite (line 28) | func NewSQLite(db *sql.DB) (*SQLite, error) { FILE: snapshotstore/sql/sqlite_test.go function TestSuite (line 13) | func TestSuite(t *testing.T) { function snapshotstore (line 20) | func snapshotstore() (*sql.SQLite, func(), error) {