#[non_exhaustive]pub enum DurableLoss {
Expired,
IdentityUnavailable,
IdentityMismatch,
NotDurable,
}Expand description
Why a durable handle could not be claimed back.
All four mean “reopen and rewrite from the start” to a caller. They are
told apart because only one of them says anything is wrong with the server:
IdentityMismatch means it matched our
CreateGuid and still handed back a different file, which the protocol
says cannot happen.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Expired
The server no longer has the open: it timed out, or the server restarted (a durable handle survives a dead connection, not a dead server — only a persistent handle on a continuously-available share does that). Routine.
The server gave the handle back but would not say which file it points at, so nothing could be proven. The handle was closed again.
IdentityMismatch
The server gave back a handle to a different file. The handle was closed and the write refused; writing into it is the outcome this whole mechanism exists to prevent.
NotDurable
The handle was never durable, so there was nothing to reclaim.
Trait Implementations§
Source§impl Clone for DurableLoss
impl Clone for DurableLoss
Source§fn clone(&self) -> DurableLoss
fn clone(&self) -> DurableLoss
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more