pub trait Storage {
read(Self, String, StorageKind) -> Bytes raise IOError
write(Self, String, Bytes, StorageKind) -> Unit raise IOError
append(Self, String, Bytes, StorageKind) -> Unit raise IOError
atomic_write(Self, String, Bytes, StorageKind) -> Unit raise IOError
del(Self, String, StorageKind) -> Unit raise IOError
exists(Self, String, StorageKind) -> Bool
list(Self, StorageKind) -> Array[String]
}pub(open) trait AsyncStorage {
fn async_read(Self, String, StorageKind, (Bytes) -> Unit, (String) -> Unit) -> Unit
fn async_write(Self, String, Bytes, StorageKind, () -> Unit, (String) -> Unit) -> Unit
fn async_atomic_write(Self, String, Bytes, StorageKind, () -> Unit, (String) -> Unit) -> Unit
fn async_del(Self, String, StorageKind, () -> Unit, (String) -> Unit) -> Unit
fn async_exists(Self, String, StorageKind, (Bool) -> Unit, (String) -> Unit) -> Unit
fn async_list(Self, StorageKind, (Array[String]) -> Unit, (String) -> Unit) -> Unit
}pub trait Storage {
fn read(Self, String, StorageKind) -> Bytes raise IOError
fn write(Self, String, Bytes, StorageKind) -> Unit raise IOError
fn append(Self, String, Bytes, StorageKind) -> Unit raise IOError
fn atomic_write(Self, String, Bytes, StorageKind) -> Unit raise IOError
fn del(Self, String, StorageKind) -> Unit raise IOError
fn exists(Self, String, StorageKind) -> Bool
fn list(Self, StorageKind) -> Array[String] raise IOError
}pub(all) suberror AsyncIOError {
AsyncIOFailed(String)
}pub(all) suberror IOError {
NotFound(String)
PermissionDenied(String)
IoFailed(String)
}impl AsyncStorage for KindAwareStoragefn async_atomic_write(self : KindAwareStorage, path : String, data : Bytes, kind : StorageKind, resolve : () -> Unit, _reject : (String) -> Unit) -> Unitfn async_del(self : KindAwareStorage, path : String, kind : StorageKind, resolve : () -> Unit, reject : (String) -> Unit) -> Unitfn async_exists(self : KindAwareStorage, path : String, kind : StorageKind, resolve : (Bool) -> Unit, _reject : (String) -> Unit) -> Unitfn async_list(self : KindAwareStorage, kind : StorageKind, resolve : (Array[String]) -> Unit, _reject : (String) -> Unit) -> Unitfn async_read(self : KindAwareStorage, path : String, kind : StorageKind, resolve : (Bytes) -> Unit, reject : (String) -> Unit) -> Unitfn async_write(self : KindAwareStorage, path : String, data : Bytes, kind : StorageKind, resolve : () -> Unit, _reject : (String) -> Unit) -> Unitimpl Storage for KindAwareStoragefn append(self : KindAwareStorage, path : String, data : Bytes, kind : StorageKind) -> Unit raise IOErrorfn atomic_write(self : KindAwareStorage, path : String, data : Bytes, kind : StorageKind) -> Unit raise IOErrorfn write(self : KindAwareStorage, path : String, data : Bytes, kind : StorageKind) -> Unit raise IOErrorimpl AsyncStorage for MemoryStoragefn async_atomic_write(self : MemoryStorage, path : String, data : Bytes, _kind : StorageKind, resolve : () -> Unit, _reject : (String) -> Unit) -> Unitfn async_del(self : MemoryStorage, path : String, _kind : StorageKind, resolve : () -> Unit, reject : (String) -> Unit) -> Unitfn async_exists(self : MemoryStorage, path : String, _kind : StorageKind, resolve : (Bool) -> Unit, _reject : (String) -> Unit) -> Unitfn async_list(self : MemoryStorage, _kind : StorageKind, resolve : (Array[String]) -> Unit, _reject : (String) -> Unit) -> Unitfn async_read(self : MemoryStorage, path : String, _kind : StorageKind, resolve : (Bytes) -> Unit, reject : (String) -> Unit) -> Unitfn async_write(self : MemoryStorage, path : String, data : Bytes, _kind : StorageKind, resolve : () -> Unit, _reject : (String) -> Unit) -> Unitimpl Storage for MemoryStoragefn append(self : MemoryStorage, path : String, data : Bytes, _kind : StorageKind) -> Unit raise IOErrorfn atomic_write(self : MemoryStorage, path : String, data : Bytes, _kind : StorageKind) -> Unit raise IOErrorfn write(self : MemoryStorage, path : String, data : Bytes, _kind : StorageKind) -> Unit raise IOErrorpub struct NativeFileStorage {
root_dir : String
}impl AsyncStorage for NativeFileStoragefn async_atomic_write(self : NativeFileStorage, path : String, data : Bytes, kind : StorageKind, resolve : () -> Unit, reject : (String) -> Unit) -> Unitfn async_del(self : NativeFileStorage, path : String, kind : StorageKind, resolve : () -> Unit, reject : (String) -> Unit) -> Unitfn async_exists(self : NativeFileStorage, path : String, kind : StorageKind, resolve : (Bool) -> Unit, _reject : (String) -> Unit) -> Unitfn async_list(self : NativeFileStorage, kind : StorageKind, resolve : (Array[String]) -> Unit, reject : (String) -> Unit) -> Unitfn async_read(self : NativeFileStorage, path : String, kind : StorageKind, resolve : (Bytes) -> Unit, reject : (String) -> Unit) -> Unitfn async_write(self : NativeFileStorage, path : String, data : Bytes, kind : StorageKind, resolve : () -> Unit, reject : (String) -> Unit) -> Unitimpl Storage for NativeFileStoragefn append(self : NativeFileStorage, path : String, data : Bytes, kind : StorageKind) -> Unit raise IOErrorfn atomic_write(self : NativeFileStorage, path : String, data : Bytes, kind : StorageKind) -> Unit raise IOErrorfn write(self : NativeFileStorage, path : String, data : Bytes, kind : StorageKind) -> Unit raise IOErrorfn NativeFileStorage::append(self : NativeFileStorage, path : String, data : Bytes, kind : StorageKind) -> Unit raise IOErrorfn NativeFileStorage::atomic_write(self : NativeFileStorage, path : String, data : Bytes, kind : StorageKind) -> Unit raise IOErrorfn NativeFileStorage::del(self : NativeFileStorage, path : String, kind : StorageKind) -> Unit raise IOErrorfn NativeFileStorage::list(self : NativeFileStorage, kind : StorageKind) -> Array[String] raise IOErrorfn NativeFileStorage::read(self : NativeFileStorage, path : String, kind : StorageKind) -> Bytes raise IOErrorfn NativeFileStorage::write(self : NativeFileStorage, path : String, data : Bytes, kind : StorageKind) -> Unit raise IOErrorimpl AsyncStorage for ReplicatedStorage[T]fn[T : AsyncStorage] async_atomic_write(self : ReplicatedStorage[T], path : String, data : Bytes, kind : StorageKind, resolve : () -> Unit, reject : (String) -> Unit) -> Unitfn[T : AsyncStorage] async_del(self : ReplicatedStorage[T], path : String, kind : StorageKind, resolve : () -> Unit, reject : (String) -> Unit) -> Unitfn[T : AsyncStorage] async_exists(self : ReplicatedStorage[T], path : String, kind : StorageKind, resolve : (Bool) -> Unit, reject : (String) -> Unit) -> Unitfn[T : AsyncStorage] async_list(self : ReplicatedStorage[T], kind : StorageKind, resolve : (Array[String]) -> Unit, reject : (String) -> Unit) -> Unitfn[T : AsyncStorage] async_read(self : ReplicatedStorage[T], path : String, kind : StorageKind, resolve : (Bytes) -> Unit, reject : (String) -> Unit) -> Unitfn[T : AsyncStorage] async_write(self : ReplicatedStorage[T], path : String, data : Bytes, kind : StorageKind, resolve : () -> Unit, reject : (String) -> Unit) -> Unitfn[T] ReplicatedStorage::new(primary : T, replicas : Array[T], config? : ReplicationConfig) -> ReplicatedStorage[T]pub(all) struct ReplicationConfig {
write_quorum : Int
}pub(all) enum StorageKind {
Config
Index
Data
}async fn[S : AsyncStorage] async_atomic_write(storage : S, path : String, data : Bytes, kind : StorageKind) -> Unitasync fn[S : AsyncStorage] async_write(storage : S, path : String, data : Bytes, kind : StorageKind) -> Unitfn collection_config_path(collection_name : String) -> Stringfn collection_data_path(collection_name : String) -> Stringfn collection_index_path(collection_name : String) -> Stringfn collection_manifest_path(collection_name : String) -> Stringfn collection_wal_path(collection_name : String) -> Stringlet ext_config : Stringfn is_segment_path(path : String, base_name : String) -> Boolfn segment_data_path(base : String, pg : Int, part : Int) -> StringHigh-performance vector database with multiple ANN algorithms
Dependencies