pub struct Lb {
pub config: Config,
pub keychain: Keychain,
pub db: Arc<RwLock<CoreDb>>,
pub docs: AsyncDocs,
pub search: SearchIndex,
pub client: Network,
pub events: EventSubs,
pub syncing: Arc<AtomicBool>,
pub status: StatusUpdater,
}
Fields§
§config: Config
§keychain: Keychain
§db: Arc<RwLock<CoreDb>>
§docs: AsyncDocs
§search: SearchIndex
§client: Network
§events: EventSubs
§syncing: Arc<AtomicBool>
§status: StatusUpdater
Implementations§
Source§impl Lb
impl Lb
Sourcepub async fn create_account(
&self,
username: &str,
api_url: &str,
welcome_doc: bool,
) -> LbResult<Account>
pub async fn create_account( &self, username: &str, api_url: &str, welcome_doc: bool, ) -> LbResult<Account>
CoreError::AccountExists, CoreError::UsernameTaken, CoreError::UsernameInvalid, CoreError::ServerDisabled, CoreError::ServerUnreachable, CoreError::ClientUpdateRequired,
pub async fn import_account( &self, key: &str, api_url: Option<&str>, ) -> LbResult<Account>
pub async fn import_account_private_key_v1( &self, account: Account, ) -> LbResult<Account>
pub async fn import_account_private_key_v2( &self, private_key: SecretKey, api_url: &str, ) -> LbResult<Account>
pub async fn import_account_phrase( &self, phrase: [&str; 24], api_url: &str, ) -> LbResult<Account>
pub fn export_account_private_key(&self) -> LbResult<String>
pub fn export_account_phrase(&self) -> LbResult<String>
pub fn export_account_qr(&self) -> LbResult<Vec<u8>>
pub async fn delete_account(&self) -> LbResult<()>
Source§impl Lb
impl Lb
pub async fn suggested_docs( &self, settings: RankingWeights, ) -> LbResult<Vec<Uuid>>
pub async fn clear_suggested(&self) -> LbResult<()>
pub async fn clear_suggested_id(&self, id: Uuid) -> LbResult<()>
Source§impl Lb
impl Lb
pub async fn disappear_account(&self, username: &str) -> LbResult<()>
pub async fn disappear_file(&self, id: Uuid) -> LbResult<()>
pub async fn list_users( &self, filter: Option<AccountFilter>, ) -> LbResult<Vec<Username>>
pub async fn get_account_info( &self, identifier: AccountIdentifier, ) -> LbResult<AccountInfo>
pub async fn validate_account( &self, username: &str, ) -> LbResult<AdminValidateAccount>
pub async fn validate_server(&self) -> LbResult<AdminValidateServer>
pub async fn file_info(&self, id: Uuid) -> LbResult<AdminFileInfoResponse>
pub async fn rebuild_index(&self, index: ServerIndex) -> LbResult<()>
pub async fn set_user_tier( &self, username: &str, info: AdminSetUserTierInfo, ) -> LbResult<()>
Source§impl Lb
impl Lb
pub async fn upgrade_account_stripe( &self, account_tier: StripeAccountTier, ) -> LbResult<()>
pub async fn upgrade_account_google_play( &self, purchase_token: &str, account_id: &str, ) -> LbResult<()>
pub async fn upgrade_account_app_store( &self, original_transaction_id: String, app_account_token: String, ) -> LbResult<()>
pub async fn cancel_subscription(&self) -> LbResult<()>
pub async fn get_subscription_info(&self) -> LbResult<Option<SubscriptionInfo>>
Source§impl Lb
impl Lb
pub async fn read_document( &self, id: Uuid, user_activity: bool, ) -> LbResult<DecryptedDocument>
pub async fn write_document(&self, id: Uuid, content: &[u8]) -> LbResult<()>
pub async fn read_document_with_hmac( &self, id: Uuid, user_activity: bool, ) -> LbResult<(Option<DocumentHmac>, DecryptedDocument)>
pub async fn safe_write( &self, id: Uuid, old_hmac: Option<DocumentHmac>, content: Vec<u8>, ) -> LbResult<DocumentHmac>
Source§impl Lb
impl Lb
pub async fn create_file( &self, name: &str, parent: &Uuid, file_type: FileType, ) -> LbResult<File>
pub async fn rename_file(&self, id: &Uuid, new_name: &str) -> LbResult<()>
pub async fn move_file(&self, id: &Uuid, new_parent: &Uuid) -> LbResult<()>
pub async fn delete(&self, id: &Uuid) -> LbResult<()>
pub async fn root(&self) -> LbResult<File>
pub async fn list_metadatas(&self) -> LbResult<Vec<File>>
pub async fn get_children(&self, id: &Uuid) -> LbResult<Vec<File>>
pub async fn get_and_get_children_recursively( &self, id: &Uuid, ) -> LbResult<Vec<File>>
pub async fn get_file_by_id(&self, id: Uuid) -> LbResult<File>
pub async fn local_changes(&self) -> Vec<Uuid>
Source§impl Lb
impl Lb
pub async fn import_files<F: Fn(ImportStatus)>( &self, sources: &[PathBuf], dest: Uuid, update_status: &F, ) -> LbResult<()>
pub async fn export_file<F: Fn(ExportFileInfo)>( &self, id: Uuid, dest: PathBuf, edit: bool, update_status: &Option<F>, ) -> LbResult<()>
pub async fn export_file_recursively<F: Fn(ExportFileInfo)>( &self, id: Uuid, disk_path: &Path, edit: bool, update_status: &Option<F>, ) -> LbResult<()>
Source§impl Lb
impl Lb
pub async fn create_link_at_path( &self, path: &str, target_id: Uuid, ) -> LbResult<File>
pub async fn create_at_path(&self, path: &str) -> LbResult<File>
pub async fn get_by_path(&self, path: &str) -> LbResult<File>
pub async fn get_path_by_id(&self, id: Uuid) -> LbResult<String>
pub async fn list_paths(&self, filter: Option<Filter>) -> LbResult<Vec<String>>
pub async fn list_paths_with_ids( &self, filter: Option<Filter>, ) -> LbResult<Vec<(Uuid, String)>>
Source§impl Lb
impl Lb
pub async fn calculate_work(&self) -> LbResult<SyncStatus>
pub async fn sync( &self, f: Option<Box<dyn Fn(SyncProgress) + Send>>, ) -> LbResult<SyncStatus>
pub async fn get_last_synced_human(&self) -> LbResult<String>
pub fn get_timestamp_human_string(&self, timestamp: i64) -> String
Source§impl Lb
impl Lb
Sourcepub async fn get_usage(&self) -> LbResult<UsageMetrics>
pub async fn get_usage(&self) -> LbResult<UsageMetrics>
fetches data footprint on server along with data cap information compares this to local changes to estimate net data increase
callers of this function should be prepared to handle:
pub async fn get_uncompressed_usage_breakdown( &self, ) -> LbResult<HashMap<Uuid, usize>>
pub async fn get_uncompressed_usage(&self) -> LbResult<UsageItemMetric>
Source§impl Lb
impl Lb
Sourcepub async fn search(
&self,
input: &str,
cfg: SearchConfig,
) -> LbResult<Vec<SearchResult>>
pub async fn search( &self, input: &str, cfg: SearchConfig, ) -> LbResult<Vec<SearchResult>>
Lockbook’s search implementation.
Takes an input and a configuration. The configuration describes whether we are searching paths, documents or both.
Document searches are handled by tantivy, and as such support tantivy’s advanced query syntax. In the future we plan to ingest a bunch of metadata and expose a full advanced search mode.
Path searches are implemented as a subsequence filter with a number of hueristics to sort the results. Preference is given to shorter paths, filename matches, suggested docs, and documents that are editable in platform.
Additionally if a path search contains a string, greater than 8 characters long that is contained within any of the paths in the search index, that result is returned with the highest score. lb:// style ids are also supported.
pub async fn build_index(&self) -> LbResult<()>
pub fn setup_search(&self)
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Lb
impl !RefUnwindSafe for Lb
impl Send for Lb
impl Sync for Lb
impl Unpin for Lb
impl !UnwindSafe for Lb
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
, which can then be
downcast
into Box<dyn ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
, which can then be further
downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more