Skip to main content

CanonicalProjectRoot

Struct CanonicalProjectRoot 

Source
pub struct CanonicalProjectRoot(/* private fields */);
Expand description

One canonical native filesystem root.

Equality is native-path equality after filesystem canonicalization. The value is the authority for routing and persistence; its display projection is only for terminal diagnostics and compatibility metadata.

Implementations§

Source§

impl CanonicalProjectRoot

Source

pub fn from_path(path: &Path) -> CoreResult<Self>

Canonicalize an existing absolute directory into a native identity.

§Errors

Returns an error when the path is relative, missing, or cannot be canonicalized by the host filesystem.

Source

pub fn from_persisted_path(path: PathBuf) -> CoreResult<Self>

Construct an identity from a persisted native path whose filesystem object may no longer exist.

This is the migration and recovery entry point for historical worktree identities. It uses the same identity type and lexical validation as Self::decode, but deliberately does not require a live directory. Active filesystem admission must continue to use Self::from_path.

§Errors

Returns an error when the path is relative, contains an interior NUL, or does not satisfy the native canonical lexical contract.

Source

pub fn as_path(&self) -> &Path

Return the canonical native path.

Source

pub fn into_path(self) -> PathBuf

Consume the identity and return its canonical native path.

Source

pub fn display_string(&self) -> CoreResult<String>

Return the UTF-8 terminal/compatibility display projection.

A native root containing bytes that are not UTF-8 has no lossless text display. Callers carrying identity or compatibility state must retain this typed refusal instead of turning the path into replacement text.

§Errors

Returns CoreError::NonUtf8Path when the native path has no lossless UTF-8 display projection.

Source

pub fn display_string_lossy(&self) -> String

Return an explicitly lossy rendering for terminal-only diagnostics.

This method must not be used for identity comparison, persistence, compatibility keys, or structured adapter results.

Source

pub fn encode(&self) -> CoreResult<Vec<u8>>

Encode the native path without lossy text conversion.

§Errors

Returns an error when the host cannot encode its native path format.

Source

pub fn decode(encoded: &[u8]) -> CoreResult<Self>

Decode one versioned native path codec value.

§Errors

Returns an error when the version, platform, bytes, or decoded path is invalid.

Trait Implementations§

Source§

impl Clone for CanonicalProjectRoot

Source§

fn clone(&self) -> CanonicalProjectRoot

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 CanonicalProjectRoot

Source§

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

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

impl Display for CanonicalProjectRoot

Source§

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

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

impl Eq for CanonicalProjectRoot

Source§

impl Hash for CanonicalProjectRoot

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

Source§

fn eq(&self, other: &CanonicalProjectRoot) -> 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 StructuralPartialEq for CanonicalProjectRoot

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
§

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

§

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> 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 = 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.