Skip to main content

Target

Enum Target 

Source
pub enum Target {
    Path(PathBuf),
    UnresolvedId(Id),
    AmbiguousAlias(String),
    External,
    Foreign {
        workspace: String,
        id: Id,
    },
}
Expand description

The resolution of one link target against a workspace: a path, an ID the registry does not currently resolve, or an off-workspace reference.

Variants§

§

Path(PathBuf)

A (normalized, workspace-relative) path.

§

UnresolvedId(Id)

An id:<id> reference with no live registry entry — unknown, tombstoned, or the workspace has no registry at all.

§

AmbiguousAlias(String)

A nominal (alias) reference whose name several documents claim, so it cannot be resolved to one. The String is the name as written.

§

External

A URL or mail address — never resolved against the workspace and never rewritten by moves.

§

Foreign

An id:<workspace>/<id> reference naming a document in another workspace — carried, never rewritten, and never reported broken.

prov stops here on purpose. Resolving this would require a map from a workspace name to a location, and that map is a property of the device doing the reading, not of the archive being read: the same reference resolves to a directory on one machine, a URL on another, and nothing at all on a third. So the library reports what was named and leaves where it lives to the host — prov-cli keeps a device-local peer map, diaryx resolves through its published ARK permalinks.

The shape that answer comes back in, and the check that makes it trustworthy, are crate::peer. Following one is a step a caller takes after this, never a deeper mode of it.

A reference qualified with this workspace’s own workspace_id is not foreign: it is resolved locally through the registry, so a document carrying one keeps working when it is copied into the workspace it names.

Fields

§workspace: String

The workspace qualifier, exactly as written.

§id: Id

The id within that workspace, exactly as written — never check-verified here (that workspace owns its id space, and may not be a prov workspace at all).

Trait Implementations§

Source§

impl Clone for Target

Source§

fn clone(&self) -> Target

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 Target

Source§

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

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

impl Eq for Target

Source§

impl PartialEq for Target

Source§

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

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

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Target

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.