WIP Implementing core/ledger

This commit is contained in:
2026-02-09 09:52:20 +00:00
parent 55101752f5
commit 57e7c94f36
6 changed files with 190 additions and 17 deletions

View File

@@ -2,24 +2,27 @@ package core
import (
"context"
"io"
)
type EntryStore interface {
Append(ctx context.Context, entry Entry) (EntryID, error)
Redact(ctx context.Context, entryID EntryID) error
Append(ctx context.Context, entry Entry) error
Get(ctx context.Context, entryID EntryID) (Entry, error)
ScanForwards(ctx context.Context, entryID EntryID) ([]EntryID, error)
ScanBackwards(ctx context.Context, entryID EntryID) ([]EntryID, error)
GetBySeq(ctx context.Context, ledgerID LedgerID, seq uint64) (Entry, error)
Delete(ctx context.Context, entryID EntryID) error
Head(ctx context.Context, ledgerID LedgerID) (EntryID, error)
IsEmpty(ctx context.Context, ledgerID LedgerID) bool
HeadSeq(context.Context, LedgerID) (uint64, error)
Tail(ctx context.Context, ledgerID LedgerID) (EntryID, error)
Iterator(ctx context.Context, ledgerLedgerID, startSeq uint64) (EntryIterator, error)
}
type EntryIterator interface {
Next() bool
Entry() Entry
}
type PayloadStore interface {
Put(ctx context.Context, reader io.Reader) (PayloadID, error)
Put(ctx context.Context, payload []byte) (PayloadID, error)
Get(ctx context.Context, payloadID PayloadID) ([]byte, error)
Delete(ctx context.Context, payloadID PayloadID) error
}