Documentation
¶
Overview ¶
Package memory provides explicit region lifetime, ownership, clearing, and reuse. Its primary Go+ API is algebraic: expected failures travel on Result, optional free-span locations travel on Option, and policy/state alternatives are exhaustive enums.
Index ¶
- func Error(failure Failure) string
- func FailureEqual(a, b Failure) bool
- func FailureEqualWith(a, b Failure, ov FailureEqOverrides) bool
- func FailureFold[R any](f Failure, cs FailureCases[R]) R
- func MutationEqual(a, b Mutation) bool
- func MutationEqualWith(a, b Mutation, ov MutationEqOverrides) bool
- func MutationFold[R any](m Mutation, cs MutationCases[R]) R
- func New(config Config) result.Result[*Arena, Failure]
- func StoragePolicyEqual(a, b StoragePolicy) bool
- func StoragePolicyEqualWith(a, b StoragePolicy, ov StoragePolicyEqOverrides) bool
- func StoragePolicyFold[R any](s StoragePolicy, cs StoragePolicyCases[R]) R
- func Unwrap(failure Failure) error
- func ZeroPolicyEqual(a, b ZeroPolicy) bool
- func ZeroPolicyEqualWith(a, b ZeroPolicy, ov ZeroPolicyEqOverrides) bool
- func ZeroPolicyFold[R any](z ZeroPolicy, cs ZeroPolicyCases[R]) R
- type Applied
- type Arena
- func (arena *Arena) Allocate(size int, alignment int) result.Result[Handle, Failure]
- func (arena *Arena) Bytes(handle Handle) result.Result[[]byte, Failure]
- func (arena *Arena) Checkpoint() result.Result[Checkpoint, Failure]
- func (arena *Arena) Close() result.Result[Mutation, Failure]
- func (arena *Arena) Delete(handle Handle) result.Result[Mutation, Failure]
- func (arena *Arena) Group() result.Result[*Group, Failure]
- func (arena *Arena) Read(handle Handle, at int, destination []byte) result.Result[Mutation, Failure]
- func (arena *Arena) Reset() result.Result[Mutation, Failure]
- func (arena *Arena) Rollback(checkpoint Checkpoint) result.Result[Mutation, Failure]
- func (arena *Arena) Stats() Stats
- func (arena *Arena) Write(handle Handle, at int, source []byte) result.Result[Mutation, Failure]
- func (arena *Arena) Zero(handle Handle) result.Result[Mutation, Failure]
- type ArenaClosed
- type BoundsViolation
- type Buffer
- func (buffer *Buffer[T]) Append(value T)
- func (buffer Buffer[T]) At(index int) option.Option[T]
- func (buffer Buffer[T]) Cap() int
- func (buffer Buffer[T]) Len() int
- func (buffer *Buffer[T]) Release()
- func (buffer *Buffer[T]) Remove(index int) option.Option[T]
- func (buffer *Buffer[T]) Reset()
- func (buffer *Buffer[T]) Set(index int, value T) bool
- func (buffer *Buffer[T]) Truncate(length int) bool
- type CapacityExhausted
- type Checkpoint
- type Config
- type Failure
- type FailureCases
- type FailureEqOverrides
- type Group
- type GroupReleased
- type Handle
- type InvalidCheckpoint
- type InvalidConfiguration
- type InvalidHandle
- type ManagedStorage
- type Mutation
- type MutationCases
- type MutationEqOverrides
- type PlatformFailure
- type PlatformStorage
- type PreserveOnRelease
- type Row2
- type Row3
- type SoA2
- type SoA3
- func (columns *SoA3[A, B, C]) Append(first A, second B, third C)
- func (columns SoA3[A, B, C]) At(index int) option.Option[Row3[A, B, C]]
- func (columns SoA3[A, B, C]) Len() int
- func (columns *SoA3[A, B, C]) Release()
- func (columns *SoA3[A, B, C]) Reset()
- func (columns SoA3[A, B, C]) Rows() []Row3[A, B, C]
- type Stats
- type StoragePolicy
- type StoragePolicyCases
- type StoragePolicyEqOverrides
- type ZeroOnRelease
- type ZeroPolicy
- type ZeroPolicyCases
- type ZeroPolicyEqOverrides
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FailureEqual ¶
FailureEqual reports structural equality of a and b.
func FailureEqualWith ¶
func FailureEqualWith(a, b Failure, ov FailureEqOverrides) bool
FailureEqualWith reports structural equality of a and b under ov.
func FailureFold ¶
func FailureFold[R any](f Failure, cs FailureCases[R]) R
FailureFold reduces Failure by one-level case analysis.
func MutationEqual ¶
MutationEqual reports structural equality of a and b.
func MutationEqualWith ¶
func MutationEqualWith(a, b Mutation, ov MutationEqOverrides) bool
MutationEqualWith reports structural equality of a and b under ov.
func MutationFold ¶
func MutationFold[R any](m Mutation, cs MutationCases[R]) R
MutationFold reduces Mutation by one-level case analysis.
func StoragePolicyEqual ¶ added in v0.211.0
func StoragePolicyEqual(a, b StoragePolicy) bool
StoragePolicyEqual reports structural equality of a and b.
func StoragePolicyEqualWith ¶ added in v0.211.0
func StoragePolicyEqualWith(a, b StoragePolicy, ov StoragePolicyEqOverrides) bool
StoragePolicyEqualWith reports structural equality of a and b under ov.
func StoragePolicyFold ¶ added in v0.211.0
func StoragePolicyFold[R any](s StoragePolicy, cs StoragePolicyCases[R]) R
StoragePolicyFold reduces StoragePolicy by one-level case analysis.
func ZeroPolicyEqual ¶
func ZeroPolicyEqual(a, b ZeroPolicy) bool
ZeroPolicyEqual reports structural equality of a and b.
func ZeroPolicyEqualWith ¶
func ZeroPolicyEqualWith(a, b ZeroPolicy, ov ZeroPolicyEqOverrides) bool
ZeroPolicyEqualWith reports structural equality of a and b under ov.
func ZeroPolicyFold ¶
func ZeroPolicyFold[R any](z ZeroPolicy, cs ZeroPolicyCases[R]) R
ZeroPolicyFold reduces ZeroPolicy by one-level case analysis.
Types ¶
type Arena ¶
type Arena struct {
// contains filtered or unexported fields
}
func (*Arena) Checkpoint ¶
func (arena *Arena) Checkpoint() result.Result[Checkpoint, Failure]
type ArenaClosed ¶
type ArenaClosed struct{}
type BoundsViolation ¶
type BoundsViolation struct {
Operation string
}
type CapacityExhausted ¶
type CapacityExhausted struct{}
type Checkpoint ¶
type Checkpoint struct {
// contains filtered or unexported fields
}
type Config ¶
type Config struct {
Capacity int
Zero ZeroPolicy
Storage StoragePolicy
}
type FailureCases ¶
type FailureCases[R any] struct { ArenaClosed func() R CapacityExhausted func() R InvalidHandle func() R InvalidCheckpoint func() R InvalidConfiguration func(Message string) R BoundsViolation func(Operation string) R PlatformFailure func(Cause error) R GroupReleased func() R }
FailureCases selects one handler per Failure variant for FailureFold.
type FailureEqOverrides ¶
type FailureEqOverrides struct {
ArenaClosed func(x, y ArenaClosed) (eq, handled bool)
CapacityExhausted func(x, y CapacityExhausted) (eq, handled bool)
InvalidHandle func(x, y InvalidHandle) (eq, handled bool)
InvalidCheckpoint func(x, y InvalidCheckpoint) (eq, handled bool)
InvalidConfiguration func(x, y InvalidConfiguration) (eq, handled bool)
BoundsViolation func(x, y BoundsViolation) (eq, handled bool)
PlatformFailure func(x, y PlatformFailure) (eq, handled bool)
GroupReleased func(x, y GroupReleased) (eq, handled bool)
}
FailureEqOverrides carries optional per-variant hooks for FailureEqualWith. A hook returning handled=false falls through to the derived comparison.
type Group ¶
type Group struct {
// contains filtered or unexported fields
}
type GroupReleased ¶
type GroupReleased struct{}
type InvalidCheckpoint ¶
type InvalidCheckpoint struct{}
type InvalidConfiguration ¶
type InvalidConfiguration struct {
Message string
}
type InvalidHandle ¶
type InvalidHandle struct{}
type ManagedStorage ¶ added in v0.211.0
type ManagedStorage struct{}
type MutationCases ¶
type MutationCases[R any] struct { Applied func() R }
MutationCases selects one handler per Mutation variant for MutationFold.
type MutationEqOverrides ¶
MutationEqOverrides carries optional per-variant hooks for MutationEqualWith. A hook returning handled=false falls through to the derived comparison.
type PlatformFailure ¶
type PlatformFailure struct {
Cause error
}
type PlatformStorage ¶ added in v0.211.0
type PlatformStorage struct{}
type PreserveOnRelease ¶
type PreserveOnRelease struct{}
PreserveOnRelease is an explicit performance capability. Its caller must prove released bytes are neither secret nor observable before overwrite.
type StoragePolicy ¶ added in v0.211.0
type StoragePolicy interface {
// contains filtered or unexported methods
}
type StoragePolicyCases ¶ added in v0.211.0
type StoragePolicyCases[R any] struct { PlatformStorage func() R ManagedStorage func() R }
StoragePolicyCases selects one handler per StoragePolicy variant for StoragePolicyFold.
type StoragePolicyEqOverrides ¶ added in v0.211.0
type StoragePolicyEqOverrides struct {
PlatformStorage func(x, y PlatformStorage) (eq, handled bool)
ManagedStorage func(x, y ManagedStorage) (eq, handled bool)
}
StoragePolicyEqOverrides carries optional per-variant hooks for StoragePolicyEqualWith. A hook returning handled=false falls through to the derived comparison.
type ZeroOnRelease ¶
type ZeroOnRelease struct{}
ZeroOnRelease is the secure default and the zero value after erasure.
type ZeroPolicy ¶
type ZeroPolicy interface {
// contains filtered or unexported methods
}
type ZeroPolicyCases ¶
type ZeroPolicyCases[R any] struct { ZeroOnRelease func() R PreserveOnRelease func() R }
ZeroPolicyCases selects one handler per ZeroPolicy variant for ZeroPolicyFold.
type ZeroPolicyEqOverrides ¶
type ZeroPolicyEqOverrides struct {
ZeroOnRelease func(x, y ZeroOnRelease) (eq, handled bool)
PreserveOnRelease func(x, y PreserveOnRelease) (eq, handled bool)
}
ZeroPolicyEqOverrides carries optional per-variant hooks for ZeroPolicyEqualWith. A hook returning handled=false falls through to the derived comparison.