Skip to main content

SourceReplacementSettings

Struct SourceReplacementSettings 

Source
pub struct SourceReplacementSettings {
    pub entries: BTreeMap<SourceLocator, SourceReplacementEntry>,
}
Expand description

Collection of source-replacement entries plus typed resolution / cycle detection.

Built by cabin-config’s merger from the highest-priority config file’s [source-replacement] table; lower-priority files contribute additional entries when their original key is not already covered, so the resulting map preserves the same “higher level overrides” semantics the rest of the config layer uses.

Fields§

§entries: BTreeMap<SourceLocator, SourceReplacementEntry>

(original -> entry) keyed by the source being replaced. BTreeMap keeps iteration deterministic for metadata + lockfile serialization.

Implementations§

Source§

impl SourceReplacementSettings

Source

pub fn is_empty(&self) -> bool

Whether the table carries no entries. Used by the workspace loader / metadata view to skip emitting empty blocks.

Source

pub fn resolve( &self, initial: &SourceLocator, ) -> Result<SourceReplacementResolution, SourceReplacementError>

Resolve initial through the replacement chain. Returns the terminal source plus the chain of intermediate originals (in walk order) so the lockfile / metadata view can record the full hop list.

Cycles surface a SourceReplacementError::Cycle carrying the offending hop list so users see exactly which entries form the loop.

§Errors

Returns SourceReplacementError::Cycle when the replacement chain revisits a source, carrying the hop list up to and including the repeated entry.

Source

pub fn replaces(&self, original: &SourceLocator) -> bool

Whether the supplied original source has a replacement declared. Useful when the orchestration layer wants to know if applying replacement changed anything (so the metadata / lockfile view can show “unchanged” cleanly).

Trait Implementations§

Source§

impl Clone for SourceReplacementSettings

Source§

fn clone(&self) -> SourceReplacementSettings

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 SourceReplacementSettings

Source§

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

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

impl Default for SourceReplacementSettings

Source§

fn default() -> SourceReplacementSettings

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

impl<'de> Deserialize<'de> for SourceReplacementSettings

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 PartialEq for SourceReplacementSettings

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for SourceReplacementSettings

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 Eq for SourceReplacementSettings

Source§

impl StructuralPartialEq for SourceReplacementSettings

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<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<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> Same for T

Source§

type Output = T

Should always be Self
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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,