pub trait PersistentLayerStore:
'static
+ Send
+ Sync
+ Clone {
type File: FileLoad + FileStore + Clone;
Show 30 methods
// Required methods
fn directories<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<[u32; 5]>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn create_named_directory<'life0, 'async_trait>(
&'life0 self,
id: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<[u32; 5]>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn directory_exists<'life0, 'async_trait>(
&'life0 self,
name: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn get_file<'life0, 'life1, 'async_trait>(
&'life0 self,
directory: [u32; 5],
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Self::File>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn file_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
directory: [u32; 5],
file: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
// Provided methods
fn create_directory<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<[u32; 5]>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn finalize<'life0, 'async_trait>(
&'life0 self,
_directory: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn layer_has_rollup<'life0, 'async_trait>(
&'life0 self,
name: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn layer_has_parent<'life0, 'async_trait>(
&'life0 self,
name: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn layer_parent<'life0, 'async_trait>(
&'life0 self,
name: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<Option<[u32; 5]>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn base_layer_files<'life0, 'async_trait>(
&'life0 self,
name: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<BaseLayerFiles<Self::File>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn child_layer_files<'life0, 'async_trait>(
&'life0 self,
name: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<ChildLayerFiles<Self::File>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn write_parent_file<'life0, 'async_trait>(
&'life0 self,
dir_name: [u32; 5],
parent_name: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn read_parent_file<'life0, 'async_trait>(
&'life0 self,
dir_name: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<[u32; 5]>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn write_rollup_file<'life0, 'async_trait>(
&'life0 self,
dir_name: [u32; 5],
rollup_name: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn read_rollup_file<'life0, 'async_trait>(
&'life0 self,
dir_name: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<[u32; 5]>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn create_child_layer_files_with_cache<'life0, 'async_trait>(
&'life0 self,
parent: [u32; 5],
cache: Arc<dyn LayerCache>,
) -> Pin<Box<dyn Future<Output = Result<([u32; 5], Arc<InternalLayer>, ChildLayerFiles<Self::File>)>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn node_dictionary_files<'life0, 'async_trait>(
&'life0 self,
layer: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<DictionaryFiles<Self::File>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn predicate_dictionary_files<'life0, 'async_trait>(
&'life0 self,
layer: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<DictionaryFiles<Self::File>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn value_dictionary_files<'life0, 'async_trait>(
&'life0 self,
layer: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<TypedDictionaryFiles<Self::File>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn node_value_idmap_files<'life0, 'async_trait>(
&'life0 self,
layer: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<BitIndexFiles<Self::File>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn predicate_idmap_files<'life0, 'async_trait>(
&'life0 self,
layer: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<BitIndexFiles<Self::File>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn triple_addition_files<'life0, 'async_trait>(
&'life0 self,
layer: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<(Self::File, AdjacencyListFiles<Self::File>, AdjacencyListFiles<Self::File>)>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn triple_removal_files<'life0, 'async_trait>(
&'life0 self,
layer: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<Option<(Self::File, AdjacencyListFiles<Self::File>, AdjacencyListFiles<Self::File>)>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn predicate_wavelet_addition_files<'life0, 'async_trait>(
&'life0 self,
layer: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<BitIndexFiles<Self::File>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn predicate_wavelet_removal_files<'life0, 'async_trait>(
&'life0 self,
layer: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<Option<BitIndexFiles<Self::File>>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn triple_addition_files_by_object<'life0, 'async_trait>(
&'life0 self,
layer: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<(Self::File, Self::File, AdjacencyListFiles<Self::File>, AdjacencyListFiles<Self::File>)>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn triple_removal_files_by_object<'life0, 'async_trait>(
&'life0 self,
layer: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<Option<(Self::File, Self::File, AdjacencyListFiles<Self::File>, AdjacencyListFiles<Self::File>)>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn triple_layer_addition_count_files<'life0, 'async_trait>(
&'life0 self,
layer: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<(Self::File, Self::File, BitIndexFiles<Self::File>)>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn triple_layer_removal_count_files<'life0, 'async_trait>(
&'life0 self,
layer: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<Option<(Self::File, Self::File, BitIndexFiles<Self::File>)>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
}Required Associated Types§
Required Methods§
fn directories<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<[u32; 5]>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn create_named_directory<'life0, 'async_trait>(
&'life0 self,
id: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<[u32; 5]>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn directory_exists<'life0, 'async_trait>(
&'life0 self,
name: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_file<'life0, 'life1, 'async_trait>(
&'life0 self,
directory: [u32; 5],
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Self::File>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn file_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
directory: [u32; 5],
file: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Provided Methods§
fn create_directory<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<[u32; 5]>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn finalize<'life0, 'async_trait>(
&'life0 self,
_directory: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn layer_has_rollup<'life0, 'async_trait>(
&'life0 self,
name: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn layer_has_parent<'life0, 'async_trait>(
&'life0 self,
name: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn layer_parent<'life0, 'async_trait>(
&'life0 self,
name: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<Option<[u32; 5]>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn base_layer_files<'life0, 'async_trait>(
&'life0 self,
name: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<BaseLayerFiles<Self::File>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn child_layer_files<'life0, 'async_trait>(
&'life0 self,
name: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<ChildLayerFiles<Self::File>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn write_parent_file<'life0, 'async_trait>(
&'life0 self,
dir_name: [u32; 5],
parent_name: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn read_parent_file<'life0, 'async_trait>(
&'life0 self,
dir_name: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<[u32; 5]>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn write_rollup_file<'life0, 'async_trait>(
&'life0 self,
dir_name: [u32; 5],
rollup_name: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn read_rollup_file<'life0, 'async_trait>(
&'life0 self,
dir_name: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<[u32; 5]>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn create_child_layer_files_with_cache<'life0, 'async_trait>(
&'life0 self,
parent: [u32; 5],
cache: Arc<dyn LayerCache>,
) -> Pin<Box<dyn Future<Output = Result<([u32; 5], Arc<InternalLayer>, ChildLayerFiles<Self::File>)>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn node_dictionary_files<'life0, 'async_trait>(
&'life0 self,
layer: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<DictionaryFiles<Self::File>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn predicate_dictionary_files<'life0, 'async_trait>(
&'life0 self,
layer: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<DictionaryFiles<Self::File>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn value_dictionary_files<'life0, 'async_trait>(
&'life0 self,
layer: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<TypedDictionaryFiles<Self::File>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn node_value_idmap_files<'life0, 'async_trait>(
&'life0 self,
layer: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<BitIndexFiles<Self::File>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn predicate_idmap_files<'life0, 'async_trait>(
&'life0 self,
layer: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<BitIndexFiles<Self::File>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn triple_addition_files<'life0, 'async_trait>(
&'life0 self,
layer: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<(Self::File, AdjacencyListFiles<Self::File>, AdjacencyListFiles<Self::File>)>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn triple_removal_files<'life0, 'async_trait>(
&'life0 self,
layer: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<Option<(Self::File, AdjacencyListFiles<Self::File>, AdjacencyListFiles<Self::File>)>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn predicate_wavelet_addition_files<'life0, 'async_trait>(
&'life0 self,
layer: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<BitIndexFiles<Self::File>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn predicate_wavelet_removal_files<'life0, 'async_trait>(
&'life0 self,
layer: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<Option<BitIndexFiles<Self::File>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn triple_addition_files_by_object<'life0, 'async_trait>(
&'life0 self,
layer: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<(Self::File, Self::File, AdjacencyListFiles<Self::File>, AdjacencyListFiles<Self::File>)>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn triple_removal_files_by_object<'life0, 'async_trait>(
&'life0 self,
layer: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<Option<(Self::File, Self::File, AdjacencyListFiles<Self::File>, AdjacencyListFiles<Self::File>)>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn triple_layer_addition_count_files<'life0, 'async_trait>(
&'life0 self,
layer: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<(Self::File, Self::File, BitIndexFiles<Self::File>)>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn triple_layer_removal_count_files<'life0, 'async_trait>(
&'life0 self,
layer: [u32; 5],
) -> Pin<Box<dyn Future<Output = Result<Option<(Self::File, Self::File, BitIndexFiles<Self::File>)>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".