Skip to main content

WorkspacePolicy

Enum WorkspacePolicy 

Source
pub enum WorkspacePolicy {
    Ephemeral,
    Persistent {
        root: LocalAbsolutePath,
    },
}
Expand description

A repository’s configured workspace behaviour.

Persistent carries its root rather than pointing at one, so “persistent without a path” and “ephemeral with a stale path” are both unrepresentable rather than merely rejected — the rule crate::model states for capacity, applied here.

Variants§

§

Ephemeral

D3: attempts are created under the effective host runner root and the whole attempt directory is removed on cleanup.

§

Persistent

D4/D5: attempts lease a stable sN slot under root and only _work survives cleanup.

Implementations§

Source§

impl WorkspacePolicy

Source

pub fn persistent( root: LocalAbsolutePath, scope: TargetScope, ) -> Result<Self, WorkspaceError>

Configure persistence for a target of scope.

The scope is an argument rather than something the caller checks first, so D7 is stated at the call site rather than remembered. It is not the only gate: Persistent { root } is a public variant and so is constructible directly, which is why ScalePolicy::set_workspace_policy and Self::from_persisted re-run Self::permitted_for on the value they are handed rather than trusting that it came through here.

§Errors

WorkspaceError::PersistentRequiresRepositoryScope for an organization target.

Source

pub fn from_persisted( kind: WorkspaceKind, root: Option<LocalAbsolutePath>, scope: TargetScope, ) -> Result<Self, WorkspaceError>

Rebuild a stored workspace policy from its two columns.

§Errors

WorkspaceError::PersistentWithoutRoot, WorkspaceError::EphemeralWithRoot, or WorkspaceError::PersistentRequiresRepositoryScope — the three shapes a hand-edited row can claim and this crate cannot have written.

Source

pub const fn kind(&self) -> WorkspaceKind

Source

pub const fn root(&self) -> Option<&LocalAbsolutePath>

The configured root, for a2 to store and d1/e1 to display.

Source

pub const fn is_persistent(&self) -> bool

Source

pub const fn retains_job_workspace(&self) -> bool

Whether the job workspace survives an attempt under this policy.

The counterpart of crate::model::CachePolicy::retains_job_workspace, which is false by construction. That constant is still correct: it answers whether the runner package cache policy retains a workspace, and it never will. This is the deliberate new decision D4 introduced, and it is spelled on a different type for exactly that reason.

Trait Implementations§

Source§

impl Clone for WorkspacePolicy

Source§

fn clone(&self) -> WorkspacePolicy

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for WorkspacePolicy

Source§

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

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

impl Default for WorkspacePolicy

Source§

fn default() -> WorkspacePolicy

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for WorkspacePolicy

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 Display for WorkspacePolicy

Source§

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

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

impl Eq for WorkspacePolicy

Source§

impl Hash for WorkspacePolicy

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Ord for WorkspacePolicy

Source§

fn cmp(&self, other: &WorkspacePolicy) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 (const: unstable) · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 (const: unstable) · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 (const: unstable) · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

fn clamp_to<R>(self, range: R) -> Self
where Self: Sized, R: ClampBounds<Self>,

🔬This is a nightly-only experimental API. (clamp_to)
Restrict a value to a certain range. Read more
Source§

impl PartialEq for WorkspacePolicy

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl PartialOrd for WorkspacePolicy

Source§

fn partial_cmp(&self, other: &WorkspacePolicy) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 (const: unstable) · Source§

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

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 (const: unstable) · Source§

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

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 (const: unstable) · Source§

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

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 (const: unstable) · Source§

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

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Serialize for WorkspacePolicy

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 StructuralPartialEq for WorkspacePolicy

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

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

Source§

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

Source§

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.

Source§

impl<T> Instrument for T

Source§

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

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

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> 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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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

impl<T> WithSubscriber for T

Source§

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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