Lb

Struct Lb 

Source
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

Source

pub async fn ro_tx(&self) -> LbRO<'_>

Source

pub async fn begin_tx(&self) -> LbTx<'_>

Source§

impl Lb

Source

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,

Source

pub async fn import_account( &self, key: &str, api_url: Option<&str>, ) -> LbResult<Account>

Source

pub async fn import_account_private_key_v1( &self, account: Account, ) -> LbResult<Account>

Source

pub async fn import_account_private_key_v2( &self, private_key: SecretKey, api_url: &str, ) -> LbResult<Account>

Source

pub async fn import_account_phrase( &self, phrase: [&str; 24], api_url: &str, ) -> LbResult<Account>

Source

pub fn export_account_private_key(&self) -> LbResult<String>

Source

pub fn export_account_phrase(&self) -> LbResult<String>

Source

pub fn export_account_qr(&self) -> LbResult<Vec<u8>>

Source

pub async fn delete_account(&self) -> LbResult<()>

Source§

impl Lb

Source

pub async fn suggested_docs( &self, settings: RankingWeights, ) -> LbResult<Vec<Uuid>>

Source

pub async fn clear_suggested(&self) -> LbResult<()>

Source

pub async fn clear_suggested_id(&self, id: Uuid) -> LbResult<()>

Source§

impl Lb

Source

pub async fn disappear_account(&self, username: &str) -> LbResult<()>

Source

pub async fn disappear_file(&self, id: Uuid) -> LbResult<()>

Source

pub async fn list_users( &self, filter: Option<AccountFilter>, ) -> LbResult<Vec<Username>>

Source

pub async fn get_account_info( &self, identifier: AccountIdentifier, ) -> LbResult<AccountInfo>

Source

pub async fn validate_account( &self, username: &str, ) -> LbResult<AdminValidateAccount>

Source

pub async fn validate_server(&self) -> LbResult<AdminValidateServer>

Source

pub async fn file_info(&self, id: Uuid) -> LbResult<AdminFileInfoResponse>

Source

pub async fn rebuild_index(&self, index: ServerIndex) -> LbResult<()>

Source

pub async fn set_user_tier( &self, username: &str, info: AdminSetUserTierInfo, ) -> LbResult<()>

Source§

impl Lb

Source

pub async fn upgrade_account_stripe( &self, account_tier: StripeAccountTier, ) -> LbResult<()>

Source

pub async fn upgrade_account_google_play( &self, purchase_token: &str, account_id: &str, ) -> LbResult<()>

Source

pub async fn upgrade_account_app_store( &self, original_transaction_id: String, app_account_token: String, ) -> LbResult<()>

Source

pub async fn cancel_subscription(&self) -> LbResult<()>

Source

pub async fn get_subscription_info(&self) -> LbResult<Option<SubscriptionInfo>>

Source§

impl Lb

Source

pub async fn debug_info(&self, os_info: String) -> LbResult<String>

Source§

impl Lb

Source

pub async fn read_document( &self, id: Uuid, user_activity: bool, ) -> LbResult<DecryptedDocument>

Source

pub async fn write_document(&self, id: Uuid, content: &[u8]) -> LbResult<()>

Source

pub async fn read_document_with_hmac( &self, id: Uuid, user_activity: bool, ) -> LbResult<(Option<DocumentHmac>, DecryptedDocument)>

Source

pub async fn safe_write( &self, id: Uuid, old_hmac: Option<DocumentHmac>, content: Vec<u8>, ) -> LbResult<DocumentHmac>

Source§

impl Lb

Source

pub fn subscribe(&self) -> Receiver<Event>

Source§

impl Lb

Source

pub async fn create_file( &self, name: &str, parent: &Uuid, file_type: FileType, ) -> LbResult<File>

Source

pub async fn rename_file(&self, id: &Uuid, new_name: &str) -> LbResult<()>

Source

pub async fn move_file(&self, id: &Uuid, new_parent: &Uuid) -> LbResult<()>

Source

pub async fn delete(&self, id: &Uuid) -> LbResult<()>

Source

pub async fn root(&self) -> LbResult<File>

Source

pub async fn list_metadatas(&self) -> LbResult<Vec<File>>

Source

pub async fn get_children(&self, id: &Uuid) -> LbResult<Vec<File>>

Source

pub async fn get_and_get_children_recursively( &self, id: &Uuid, ) -> LbResult<Vec<File>>

Source

pub async fn get_file_by_id(&self, id: Uuid) -> LbResult<File>

Source

pub async fn local_changes(&self) -> Vec<Uuid>

Source§

impl Lb

Source

pub async fn import_files<F: Fn(ImportStatus)>( &self, sources: &[PathBuf], dest: Uuid, update_status: &F, ) -> LbResult<()>

Source

pub async fn export_file<F: Fn(ExportFileInfo)>( &self, id: Uuid, dest: PathBuf, edit: bool, update_status: &Option<F>, ) -> LbResult<()>

Source

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

Source§

impl Lb

Source§

impl Lb

Source

pub async fn create_at_path(&self, path: &str) -> LbResult<File>

Source

pub async fn get_by_path(&self, path: &str) -> LbResult<File>

Source

pub async fn get_path_by_id(&self, id: Uuid) -> LbResult<String>

Source

pub async fn list_paths(&self, filter: Option<Filter>) -> LbResult<Vec<String>>

Source

pub async fn list_paths_with_ids( &self, filter: Option<Filter>, ) -> LbResult<Vec<(Uuid, String)>>

Source§

impl Lb

Source

pub async fn share_file( &self, id: Uuid, username: &str, mode: ShareMode, ) -> LbResult<()>

Source

pub async fn get_pending_shares(&self) -> LbResult<Vec<File>>

Source

pub async fn known_usernames(&self) -> LbResult<Vec<String>>

Source

pub async fn reject_share(&self, id: &Uuid) -> Result<(), LbErr>

Source§

impl Lb

Source

pub async fn calculate_work(&self) -> LbResult<SyncStatus>

Source

pub async fn sync( &self, f: Option<Box<dyn Fn(SyncProgress) + Send>>, ) -> LbResult<SyncStatus>

Source

pub async fn get_last_synced_human(&self) -> LbResult<String>

Source

pub fn get_timestamp_human_string(&self, timestamp: i64) -> String

Source§

impl Lb

Source

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:

Source

pub async fn get_uncompressed_usage_breakdown( &self, ) -> LbResult<HashMap<Uuid, usize>>

Source

pub async fn get_uncompressed_usage(&self) -> LbResult<UsageItemMetric>

Source§

impl Lb

Source

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.

Source

pub async fn build_index(&self) -> LbResult<()>

Source§

impl Lb

Source

pub async fn status(&self) -> Status

Source

pub async fn set_initial_state(&self) -> LbResult<()>

Source

pub async fn setup_status(&self) -> LbResult<()>

Source§

impl Lb

Source

pub async fn init(config: Config) -> LbResult<Self>

Trait Implementations§

Source§

impl Clone for Lb

Source§

fn clone(&self) -> Lb

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts 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>

Converts 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)

Converts &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)

Converts &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
where T: Any + Send,

Source§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_sync(self: Box<T>) -> Box<dyn Any + Sync + Send>

Converts Box<Trait> (where Trait: DowncastSync) to Box<dyn Any + Send + Sync>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Converts Arc<Trait> (where Trait: DowncastSync) to Arc<Any>, which can then be downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> Fruit for T
where T: Send + Downcast,