pub enum ShareInError {
Escapes {
path: String,
reason: String,
},
WorkerSubtree {
path: String,
},
OutsideCeiling {
path: String,
},
TooManyFiles {
found: usize,
limit: usize,
},
TooManyBytes {
found: u64,
limit: u64,
},
NotFound {
path: String,
},
Io {
path: String,
reason: String,
},
}Expand description
Why a share-in request was refused (#2295).
Every variant is a hard refusal that fails the delegation: seeding is bounded by an operator ceiling precisely so exceeding it is an error the caller sees, not a silent truncation that hands the worker an arbitrary subset of what the task needed.
Variants§
Escapes
The path left the parent workspace, or named an absolute location.
Fields
reason: Stringpolyc_tools-style lexical containment’s own reason string.
WorkerSubtree
The path reached into a delegated worker’s own subtree — a sibling’s
scratch space, or this worker’s. Seeding from one would hand a worker
exactly the cross-worker read #2286 fenced off.
OutsideCeiling
The file exists and is inside the workspace, but no ceiling pattern admits it.
TooManyFiles
The request named more files than the ceiling admits.
TooManyBytes
The request named more bytes than the ceiling admits.
NotFound
The path named nothing in the parent workspace.
Io
Reading the parent file or writing the worker’s copy failed.
Trait Implementations§
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Auto Trait Implementations§
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> 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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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