gleamunison/storage
Types
Trusted key/value primitives, including mutable branch pointers. Untrusted immutable content must use insert_content, not insert directly.
pub type StorageAdapter {
StorageAdapter(
insert: fn(identity.DefinitionRef, BitArray) -> Result(
Nil,
StorageError,
),
lookup: fn(identity.DefinitionRef) -> Result(
option.Option(BitArray),
StorageError,
),
delete: fn(identity.DefinitionRef) -> Result(
Nil,
StorageError,
),
list_refs: fn() -> Result(
List(identity.DefinitionRef),
StorageError,
),
close: fn() -> Result(Nil, StorageError),
)
}
Constructors
-
StorageAdapter( insert: fn(identity.DefinitionRef, BitArray) -> Result( Nil, StorageError, ), lookup: fn(identity.DefinitionRef) -> Result( option.Option(BitArray), StorageError, ), delete: fn(identity.DefinitionRef) -> Result(Nil, StorageError), list_refs: fn() -> Result( List(identity.DefinitionRef), StorageError, ), close: fn() -> Result(Nil, StorageError), )Arguments
- delete
-
Remove one binding by ref. There is no bulk wipe: retraction names what it removes, so a typo cannot empty a store.
pub type StorageError {
StorageError(message: String)
NotFound
IoError(reason: String)
}
Constructors
-
StorageError(message: String) -
NotFound -
IoError(reason: String)
Values
pub fn describe_error(error: StorageError) -> String
pub fn dets(path: String) -> Result(StorageAdapter, StorageError)
pub fn ffi_dets_delete(
tab: BitArray,
ref: BitArray,
) -> Result(Nil, StorageError)
pub fn ffi_dets_insert(
tab: BitArray,
ref: BitArray,
bytes: BitArray,
) -> Result(Nil, StorageError)
pub fn ffi_dets_list_refs(
tab: BitArray,
) -> Result(List(BitArray), StorageError)
pub fn ffi_dets_lookup(
tab: BitArray,
ref: BitArray,
) -> Result(option.Option(BitArray), StorageError)
pub fn ffi_ets_delete(
tab: BitArray,
ref: BitArray,
) -> Result(Nil, StorageError)
pub fn ffi_ets_insert(
tab: BitArray,
ref: BitArray,
bytes: BitArray,
) -> Result(Nil, StorageError)
pub fn ffi_ets_list_refs(
tab: BitArray,
) -> Result(List(BitArray), StorageError)
pub fn ffi_ets_lookup(
tab: BitArray,
ref: BitArray,
) -> Result(option.Option(BitArray), StorageError)
pub fn ffi_mnesia_delete(
tab: BitArray,
ref: BitArray,
) -> Result(Nil, StorageError)
pub fn ffi_mnesia_insert(
tab: BitArray,
ref: BitArray,
bytes: BitArray,
) -> Result(Nil, StorageError)
pub fn ffi_mnesia_list_refs(
tab: BitArray,
) -> Result(List(BitArray), StorageError)
pub fn ffi_mnesia_lookup(
tab: BitArray,
ref: BitArray,
) -> Result(option.Option(BitArray), StorageError)
pub fn ffi_partitioned_dets_delete(
tab: BitArray,
ref: BitArray,
) -> Result(Nil, StorageError)
pub fn ffi_partitioned_dets_insert(
tab: BitArray,
ref: BitArray,
bytes: BitArray,
) -> Result(Nil, StorageError)
pub fn ffi_partitioned_dets_list_refs(
tab: BitArray,
) -> Result(List(BitArray), StorageError)
pub fn ffi_partitioned_dets_lookup(
tab: BitArray,
ref: BitArray,
) -> Result(option.Option(BitArray), StorageError)
pub fn inmemory() -> StorageAdapter
pub fn insert_content(
adapter: StorageAdapter,
ref: identity.DefinitionRef,
bytes: BitArray,
) -> Result(Nil, StorageError)
Validate before write; preserve the first valid binding and report I/O errors.
pub fn mnesia(
table_name: String,
) -> Result(StorageAdapter, StorageError)
pub fn verify_content(
ref: identity.DefinitionRef,
bytes: BitArray,
) -> Result(Nil, StorageError)