ClientSideDb

Trait ClientSideDb 

Source
pub trait ClientSideDb:
    'static
    + Send
    + Sync
    + Db {
Show 22 methods // Required methods fn storage_info(&self) -> impl Future<Output = Result<ClientStorageInfo>>; fn save_login(&self, _info: LoginInfo) -> impl Future<Output = Result<()>>; fn get_saved_login(&self) -> impl Future<Output = Result<Option<LoginInfo>>>; fn get_json( &self, object_id: ObjectId, importance: Importance, ) -> impl Future<Output = Result<Value>>; fn remove_everything(&self) -> impl Future<Output = Result<()>>; fn recreate<T: Object>( &self, object_id: ObjectId, new_created_at: EventId, creation_value: Arc<T>, updatedness: Option<Updatedness>, additional_importance: Importance, ) -> impl Future<Output = Result<Option<Arc<T>>>>; fn client_query( &self, type_id: TypeId, query: Arc<Query>, ) -> impl Future<Output = Result<Vec<ObjectId>>>; fn remove(&self, object_id: ObjectId) -> impl Future<Output = Result<()>>; fn remove_event<T: Object>( &self, object_id: ObjectId, event_id: EventId, ) -> impl Future<Output = Result<()>>; fn set_object_importance( &self, object_id: ObjectId, new_importance: Importance, ) -> impl Future<Output = Result<()>>; fn set_importance_from_queries( &self, object_id: ObjectId, new_importance_from_queries: Importance, ) -> impl Future<Output = Result<()>>; fn client_vacuum( &self, notify_removals: impl 'static + CrdbSyncFn<ObjectId>, notify_query_removals: impl 'static + CrdbSyncFn<QueryId>, ) -> impl Future<Output = Result<()>>; fn list_uploads(&self) -> impl Future<Output = Result<Vec<UploadId>>>; fn get_upload( &self, upload_id: UploadId, ) -> impl Future<Output = Result<Option<Upload>>>; fn enqueue_upload( &self, upload: Upload, required_binaries: Vec<BinPtr>, ) -> impl Future<Output = Result<UploadId>>; fn upload_finished( &self, upload_id: UploadId, ) -> impl Future<Output = Result<()>>; fn get_saved_objects( &self, ) -> impl Future<Output = Result<HashMap<ObjectId, SavedObjectMeta>>>; fn get_saved_queries( &self, ) -> impl Future<Output = Result<HashMap<QueryId, SavedQuery>>>; fn record_query( &self, query_id: QueryId, query: Arc<Query>, type_id: TypeId, importance: Importance, ) -> impl Future<Output = Result<()>>; fn set_query_importance( &self, query_id: QueryId, importance: Importance, objects_matching_query: Vec<ObjectId>, ) -> impl Future<Output = Result<()>>; fn forget_query( &self, query_id: QueryId, objects_matching_query: Vec<ObjectId>, ) -> impl Future<Output = Result<()>>; fn update_queries( &self, queries: &HashSet<QueryId>, now_have_all_until: Updatedness, ) -> impl Future<Output = Result<()>>;
}

Required Methods§

Source

fn storage_info(&self) -> impl Future<Output = Result<ClientStorageInfo>>

Source

fn save_login(&self, _info: LoginInfo) -> impl Future<Output = Result<()>>

Source

fn get_saved_login(&self) -> impl Future<Output = Result<Option<LoginInfo>>>

Source

fn get_json( &self, object_id: ObjectId, importance: Importance, ) -> impl Future<Output = Result<Value>>

Source

fn remove_everything(&self) -> impl Future<Output = Result<()>>

Source

fn recreate<T: Object>( &self, object_id: ObjectId, new_created_at: EventId, creation_value: Arc<T>, updatedness: Option<Updatedness>, additional_importance: Importance, ) -> impl Future<Output = Result<Option<Arc<T>>>>

Either create an object if it did not exist yet, or recreate it

Returns the new latest snapshot if it actually changed.

updatedness is the up-to-date-ness of this recreation, or None if it is not known yet (eg. it was initiated client-side and has not round-tripped to server yet)

Source

fn client_query( &self, type_id: TypeId, query: Arc<Query>, ) -> impl Future<Output = Result<Vec<ObjectId>>>

Source

fn remove(&self, object_id: ObjectId) -> impl Future<Output = Result<()>>

Source

fn remove_event<T: Object>( &self, object_id: ObjectId, event_id: EventId, ) -> impl Future<Output = Result<()>>

Source

fn set_object_importance( &self, object_id: ObjectId, new_importance: Importance, ) -> impl Future<Output = Result<()>>

Source

fn set_importance_from_queries( &self, object_id: ObjectId, new_importance_from_queries: Importance, ) -> impl Future<Output = Result<()>>

Source

fn client_vacuum( &self, notify_removals: impl 'static + CrdbSyncFn<ObjectId>, notify_query_removals: impl 'static + CrdbSyncFn<QueryId>, ) -> impl Future<Output = Result<()>>

Source

fn list_uploads(&self) -> impl Future<Output = Result<Vec<UploadId>>>

Source

fn get_upload( &self, upload_id: UploadId, ) -> impl Future<Output = Result<Option<Upload>>>

Source

fn enqueue_upload( &self, upload: Upload, required_binaries: Vec<BinPtr>, ) -> impl Future<Output = Result<UploadId>>

Source

fn upload_finished( &self, upload_id: UploadId, ) -> impl Future<Output = Result<()>>

Source

fn get_saved_objects( &self, ) -> impl Future<Output = Result<HashMap<ObjectId, SavedObjectMeta>>>

Source

fn get_saved_queries( &self, ) -> impl Future<Output = Result<HashMap<QueryId, SavedQuery>>>

Source

fn record_query( &self, query_id: QueryId, query: Arc<Query>, type_id: TypeId, importance: Importance, ) -> impl Future<Output = Result<()>>

Source

fn set_query_importance( &self, query_id: QueryId, importance: Importance, objects_matching_query: Vec<ObjectId>, ) -> impl Future<Output = Result<()>>

Source

fn forget_query( &self, query_id: QueryId, objects_matching_query: Vec<ObjectId>, ) -> impl Future<Output = Result<()>>

Source

fn update_queries( &self, queries: &HashSet<QueryId>, now_have_all_until: Updatedness, ) -> impl Future<Output = Result<()>>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§