Skip to main content

StorageConfig

Enum StorageConfig 

Source
pub enum StorageConfig {
    S3 {
        bucket: String,
        region: String,
        endpoint: Option<Url>,
        profile: Option<S3Profile>,
    },
    Dropbox {
        location: DropboxLocation,
        account_label: Option<String>,
        folder_label: Option<FolderLabel>,
    },
    OneDrive {
        drive_id: String,
        folder_id: String,
        account_label: Option<String>,
        folder_label: Option<FolderLabel>,
    },
    CloudKit {
        container: String,
        owner: String,
        zone: String,
    },
}
Expand description

The store’s location; credentials are kept separately in key custody.

Variants§

§

S3

An existing S3 bucket, which the store has to itself: coven can’t tell how far a member’s key reaches, so it takes every key to reach the whole bucket (§20.7). Paths start at the bucket’s root.

Fields

§bucket: String

Bucket name.

§region: String

Signing region.

§endpoint: Option<Url>

None is AWS’s own endpoint. Catalogued hosts (Appendix E.3) require https.

§profile: Option<S3Profile>

A catalogued service’s name or custom settings; either must agree with a catalogued endpoint host. None selects by host: storage.googleapis.com is GCS XML, hosts ending in .r2.cloudflarestorage.com are R2, no endpoint or .amazonaws.com is AWS, and setup detects any other endpoint’s settings, recording them as Custom. All run the setup checks.

§

Dropbox

Dropbox’s access and location, fixed when cloud storage is created.

Fields

§location: DropboxLocation

Required choice: not-shared App folder or a shared-capable namespace.

§account_label: Option<String>

Signed-in member’s display label; absent before setup. Never routes or authorizes.

§folder_label: Option<FolderLabel>

The shared folder’s name and web address as the latest connection read them; absent before setup and in the App folder (§20.2).

§

OneDrive

A OneDrive folder; paths within it start with the store id.

Fields

§drive_id: String

Drive containing the folder.

§folder_id: String

Folder shared with members’ Microsoft accounts.

§account_label: Option<String>

Signed-in member’s display label; absent before setup. Never routes or authorizes.

§folder_label: Option<FolderLabel>

The folder’s name and web address as the latest connection read them; absent before setup (§20.2).

§

CloudKit

The custom zone reached by the built-in CloudKit adapter.

Fields

§container: String

App’s CloudKit container.

§owner: String

Owner’s CloudKit record name.

§zone: String

Custom zone containing the store.

Implementations§

Source§

impl StorageConfig

Source

pub fn same_location(&self, other: &Self) -> bool

Whether these settings reach the same location, ignoring display labels.

Source

pub fn same_s3_bucket(&self, other: &Self) -> bool

Whether both are S3 locations naming the same bucket, at one endpoint and region, whatever profile reaches it.

Source

pub fn holds_one_store(&self) -> bool

Whether every member reaches the whole location, so it holds one store, which the location marker at its root names (§20.3): a Dropbox shared folder, a OneDrive folder, or an S3 bucket. Nobody else reaches the Dropbox App folder, and a CloudKit store’s zone is its own.

Source

pub fn oauth_access(&self) -> Option<OAuthAccess>

Access required to open this location.

Source

pub fn provider(&self) -> CloudProvider

The provider of this location.

Source

pub fn validate(&self) -> Result<(), StorageError>

Reject missing location information before making a request.

Trait Implementations§

Source§

impl Clone for StorageConfig

Source§

fn clone(&self) -> StorageConfig

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

impl Debug for StorageConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for StorageConfig

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for StorageConfig

Source§

fn eq(&self, other: &StorageConfig) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for StorageConfig

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Eq for StorageConfig

Source§

impl StructuralPartialEq for StorageConfig

Auto Trait Implementations§

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
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

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

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

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
§

impl<Unshared, Shared> IntoShared<Shared> for Unshared
where Shared: FromUnshared<Unshared>,

§

fn into_shared(self) -> Shared

Creates a shared type from an unshared type.
§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. 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.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,