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§
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<()>>
Sourcefn 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 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)
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<()>>
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.