pub struct IsolatedStagingLayout { /* private fields */ }Expand description
Immutable, validated layout. The invocation is a fresh UUID’s 32-character lowercase hexadecimal representation, supplied by the existing recovery ID.
Implementations§
Source§impl IsolatedStagingLayout
impl IsolatedStagingLayout
pub fn new( remote_base: &str, invocation: &str, primary_root: &str, working_directory: &str, roots: impl IntoIterator<Item = String>, ) -> Result<Self, StagingError>
pub fn invocation_root(&self) -> String
pub fn source_container(&self) -> String
pub fn roots(&self) -> &[String]
Sourcepub fn remote_path(&self, local_path: &str) -> Result<String, StagingError>
pub fn remote_path(&self, local_path: &str) -> Result<String, StagingError>
Map only paths inside a declared root, with component-boundary checks.
pub fn remote_working_directory(&self) -> String
Sourcepub fn local_path(&self, remote_path: &str) -> Result<String, StagingError>
pub fn local_path(&self, remote_path: &str) -> Result<String, StagingError>
Reverse mapping for diagnostics. Do not accept a neighboring invocation or an undeclared sibling simply because it shares a textual prefix.
pub fn artifact_mapping( &self, relative: &str, ) -> Result<ArtifactMapping, StagingError>
Sourcepub fn prepare_command(&self) -> String
pub fn prepare_command(&self) -> String
Atomically claim a fresh invocation. Never call this to resume recovery.
Sourcepub fn verify_command(&self, root: &str) -> Result<String, StagingError>
pub fn verify_command(&self, root: &str) -> Result<String, StagingError>
Read-only owner/path verification; NOT proof that a previous process or source writer has stopped. The durable lease protocol remains authority.
Sourcepub fn receiver_command(&self, root: &str) -> Result<String, StagingError>
pub fn receiver_command(&self, root: &str) -> Result<String, StagingError>
Pass to rsync’s –rsync-path for SOURCE UPLOAD only. rsync appends its server argv; the receiver validates and pins the exact planned target. The existing checkout fence/source lease must still wrap this command.
Trait Implementations§
Source§impl Clone for IsolatedStagingLayout
impl Clone for IsolatedStagingLayout
Source§impl Debug for IsolatedStagingLayout
impl Debug for IsolatedStagingLayout
Source§impl<'de> Deserialize<'de> for IsolatedStagingLayout
impl<'de> Deserialize<'de> for IsolatedStagingLayout
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for IsolatedStagingLayout
Source§impl PartialEq for IsolatedStagingLayout
impl PartialEq for IsolatedStagingLayout
Source§impl Serialize for IsolatedStagingLayout
impl Serialize for IsolatedStagingLayout
impl StructuralPartialEq for IsolatedStagingLayout
Auto Trait Implementations§
impl Freeze for IsolatedStagingLayout
impl RefUnwindSafe for IsolatedStagingLayout
impl Send for IsolatedStagingLayout
impl Sync for IsolatedStagingLayout
impl Unpin for IsolatedStagingLayout
impl UnsafeUnpin for IsolatedStagingLayout
impl UnwindSafe for IsolatedStagingLayout
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.