pub struct DistributedFs<A, O, S> { /* private fields */ }Expand description
Shared constructors for the semantic handles of one filesystem deployment.
Implementations§
Source§impl<A, O, S> DistributedFs<A, O, S>
impl<A, O, S> DistributedFs<A, O, S>
Sourcepub const fn new(fs: Fs<A, O>, store: S) -> Self
pub const fn new(fs: Fs<A, O>, store: S) -> Self
Composes an existing filesystem and durable semantic-state store.
Sourcepub async fn workspace(
&self,
workspace_id: WorkspaceId,
) -> Result<Workspace<A, O>, WorkspaceLineageError<S::Error>>
pub async fn workspace( &self, workspace_id: WorkspaceId, ) -> Result<Workspace<A, O>, WorkspaceLineageError<S::Error>>
Resolves one workspace by authenticated durable identity.
Sourcepub fn contexts(&self) -> WorkspaceContextRegistry<S>where
S: WorkspaceContextStore + Clone,
pub fn contexts(&self) -> WorkspaceContextRegistry<S>where
S: WorkspaceContextStore + Clone,
Constructs the durable recursive context handle.
Sourcepub fn lineage(&self) -> WorkspaceGraph<S>where
S: WorkspaceLineageStore + Clone,
pub fn lineage(&self) -> WorkspaceGraph<S>where
S: WorkspaceLineageStore + Clone,
Constructs the authenticated direct-workspace lineage handle.
Sourcepub fn git(&self, workspace_id: WorkspaceId) -> GitCompatRepository<S>where
S: Clone,
pub fn git(&self, workspace_id: WorkspaceId) -> GitCompatRepository<S>where
S: Clone,
Constructs one root’s Git-shaped compatibility view.
Sourcepub async fn attach_lazy<D: DemandSource + 'static>(
&self,
name: impl AsRef<str>,
source: Arc<D>,
) -> Result<LazyWorkspace<A, O, D, S>, LazyWorkspaceError>
pub async fn attach_lazy<D: DemandSource + 'static>( &self, name: impl AsRef<str>, source: Arc<D>, ) -> Result<LazyWorkspace<A, O, D, S>, LazyWorkspaceError>
Attaches an unresolved source without enumerating or reading its tree.
Sourcepub async fn attach_lazy_with_config<D: DemandSource + 'static>(
&self,
name: impl AsRef<str>,
source: Arc<D>,
config: VolumeConfig,
) -> Result<LazyWorkspace<A, O, D, S>, LazyWorkspaceError>
pub async fn attach_lazy_with_config<D: DemandSource + 'static>( &self, name: impl AsRef<str>, source: Arc<D>, config: VolumeConfig, ) -> Result<LazyWorkspace<A, O, D, S>, LazyWorkspaceError>
Attaches an unresolved source to a workspace with exact filesystem semantics.
Sourcepub async fn open_lazy<D: DemandSource + 'static>(
&self,
workspace: Workspace<A, O>,
source: Arc<D>,
) -> Result<LazyWorkspace<A, O, D, S>, LazyWorkspaceError>
pub async fn open_lazy<D: DemandSource + 'static>( &self, workspace: Workspace<A, O>, source: Arc<D>, ) -> Result<LazyWorkspace<A, O, D, S>, LazyWorkspaceError>
Reopens an existing workspace against its unresolved source.
Sourcepub fn publications<P: MultiRootPublisher, R: MultiRootPublicationAuthorizer>(
&self,
publisher: P,
authorizer: R,
) -> MultiRootPublicationCoordinator<S, P, R>where
S: MultiRootPublicationStore + Clone,
pub fn publications<P: MultiRootPublisher, R: MultiRootPublicationAuthorizer>(
&self,
publisher: P,
authorizer: R,
) -> MultiRootPublicationCoordinator<S, P, R>where
S: MultiRootPublicationStore + Clone,
Composes the SDK-owned all-roots publication state machine.
Source§impl<P, O, S> DistributedFs<StreamAuthorityStore<P>, O, S>
impl<P, O, S> DistributedFs<StreamAuthorityStore<P>, O, S>
Sourcepub fn operations(
&self,
) -> OperationWindowCoordinator<StreamOperationWindowStore<P>>
pub fn operations( &self, ) -> OperationWindowCoordinator<StreamOperationWindowStore<P>>
Constructs operation windows on the same authority stream that fences generation publication.
Keeping the lease gate and workspace authority on one provider makes it impossible to construct a coordinator whose leases cannot authorize the publications they protect.
Trait Implementations§
Source§impl<A, O, S: Clone> Clone for DistributedFs<A, O, S>
impl<A, O, S: Clone> Clone for DistributedFs<A, O, S>
Source§impl<A, O, S> WorkspaceResolver<A, O> for DistributedFs<A, O, S>where
A: AsyncAuthorityStore + Send + Sync,
O: AsyncObjectStore + Send + Sync,
S: WorkspaceLineageStore + Clone,
impl<A, O, S> WorkspaceResolver<A, O> for DistributedFs<A, O, S>where
A: AsyncAuthorityStore + Send + Sync,
O: AsyncObjectStore + Send + Sync,
S: WorkspaceLineageStore + Clone,
Source§type Error = WorkspaceLineageError<<S as WorkspaceLineageStore>::Error>
type Error = WorkspaceLineageError<<S as WorkspaceLineageStore>::Error>
Auto Trait Implementations§
impl<A, O, S> !RefUnwindSafe for DistributedFs<A, O, S>
impl<A, O, S> !UnwindSafe for DistributedFs<A, O, S>
impl<A, O, S> Freeze for DistributedFs<A, O, S>
impl<A, O, S> Send for DistributedFs<A, O, S>
impl<A, O, S> Sync for DistributedFs<A, O, S>
impl<A, O, S> Unpin for DistributedFs<A, O, S>
impl<A, O, S> UnsafeUnpin for DistributedFs<A, O, S>
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request