Skip to main content

QualifiedProcedureName

Struct QualifiedProcedureName 

pub struct QualifiedProcedureName { /* private fields */ }
Expand description

Represents a qualified procedure name, e.g. std::math::u64::add, parsed into it’s constituent Path and ProcedureName components.

A qualified procedure name can be context-sensitive, i.e. the module path might refer to an imported

Implementations§

§

impl QualifiedProcedureName

pub fn new( module: impl AsRef<Path>, name: ProcedureName, ) -> QualifiedProcedureName

Create a new QualifiedProcedureName with the given fully-qualified module path and procedure name.

pub fn with_span(self, span: SourceSpan) -> QualifiedProcedureName

pub fn namespace(&self) -> &Path

Get the module/namespace of this procedure

pub fn name(&self) -> &str

Get the name of this procedure as a str

pub fn as_path(&self) -> &Path

pub fn to_spanned_path(&self) -> Span<&Path>

Get this QualifiedProcedureName as a Span<&Path>

pub fn into_inner(self) -> Arc<Path>

Methods from Deref<Target = Path>§

pub const MAX_COMPONENT_LENGTH: usize

pub const EMPTY: &'static Path

pub const KERNEL_PATH: &'static str = "$kernel"

pub const ABSOLUTE_KERNEL_PATH: &'static str = "::$kernel"

pub const KERNEL: &'static Path

pub const EXEC_PATH: &'static str = "$exec"

pub const ABSOLUTE_EXEC_PATH: &'static str = "::$exec"

pub const EXEC: &'static Path

pub fn as_str(&self) -> &str

pub fn as_ident(&self) -> Option<Ident>

Get an Ident that is equivalent to this Path, so long as the path has only a single component.

Returns None if the path cannot be losslessly represented as a single component.

pub fn to_path_buf(&self) -> PathBuf

Convert this Path to an owned PathBuf

pub fn is_empty(&self) -> bool

Returns true if this path is empty (i.e. has no components)

pub fn len(&self) -> usize

Returns the number of components in the path

pub fn char_len(&self) -> usize

Return the size of the path in chars when displayed as a string

pub fn byte_len(&self) -> usize

Return the size of the path in bytes when displayed as a string

pub fn is_absolute(&self) -> bool

Returns true if this path is an absolute path

pub fn to_absolute(&self) -> Cow<'_, Path>

Make this path absolute, if not already

NOTE: This does not resolve the path, it simply ensures the path has the root prefix

pub fn to_relative(&self) -> &Path

Strip the root prefix from this path, if it has one.

pub fn parent(&self) -> Option<&Path>

Returns the Path without its final component, if there is one.

This means it may return an empty Path for relative paths with a single component.

Returns None if the path terminates with the root prefix, or if it is empty.

pub fn components(&self) -> Iter<'_>

Returns an iterator over all components of the path.

pub fn first(&self) -> Option<&str>

Get the first non-root component of this path as a str

Returns None if the path is empty, or consists only of the root prefix.

pub fn last(&self) -> Option<&str>

Get the first non-root component of this path as a str

Returns None if the path is empty, or consists only of the root prefix.

pub fn split_first(&self) -> Option<(&str, &Path)>

Splits this path on the first non-root component, returning it and a new Path of the remaining components.

Returns None if there are no components to split

pub fn split_last(&self) -> Option<(&str, &Path)>

Splits this path on the last component, returning it and a new Path of the remaining components.

Returns None if there are no components to split

pub fn is_kernel_path(&self) -> bool

Returns true if this path is for the root kernel module.

pub fn is_in_kernel(&self) -> bool

Returns true if this path is for the root kernel module or an item in it

pub fn is_exec_path(&self) -> bool

Returns true if this path is for an executable module.

pub fn is_in_exec(&self) -> bool

Returns true if this path is for the executable module or an item in it

pub fn starts_with<Prefix>(&self, prefix: &Prefix) -> bool
where Path: StartsWith<Prefix>, Prefix: ?Sized,

Returns true if the current path, sans root component, starts with prefix

The matching semantics of Prefix depend on the implementation of StartsWith<Prefix>, in particular, if Prefix is str, then the prefix is matched against the first non-root component of self, regardless of whether the string contains path delimiters (i.e. ::).

See the StartsWith trait for more details.

pub fn starts_with_exactly<Prefix>(&self, prefix: &Prefix) -> bool
where Path: StartsWith<Prefix>, Prefix: ?Sized,

Returns true if the current path, including root component, starts with prefix

The matching semantics of Prefix depend on the implementation of StartsWith<Prefix>, in particular, if Prefix is str, then the prefix is matched against the first component of self, regardless of whether the string contains path delimiters (i.e. ::).

See the StartsWith trait for more details.

pub fn strip_prefix<'a>(&'a self, prefix: &Path) -> Option<&'a Path>

Strips prefix from self, or returns None if self does not start with prefix.

NOTE: Prefixes must be exact, i.e. if you call path.strip_prefix(prefix) and path is relative but prefix is absolute, then this will return None. The same is true if path is absolute and prefix is relative.

pub fn join<P>(&self, other: &P) -> PathBuf
where Path: Join<P>, P: ?Sized,

Create an owned PathBuf with path adjoined to self.

If path is absolute, it replaces the current path.

The semantics of how other is joined to self in the resulting path depends on the implementation of Join used. The implementation for Path and PathBuf joins all components of other to self; while the implementation for [prim@str], string-like values, and identifiers/symbols joins just a single component. You must be careful to ensure that if you are passing a string here, that you specifically want to join it as a single component, or the resulting path may be different than you expect. It is recommended that you use Path::new(&string)` if you want to be explicit about treating a string-like value as a multi-component path.

pub fn canonicalize(&self) -> Result<PathBuf, PathError>

Canonicalize this path by ensuring that all components are in canonical form.

Canonical form dictates that:

  • A component is quoted only if it requires quoting, and unquoted otherwise
  • Is made absolute if relative and the first component is $kernel or $exec

Returns Err if the path is invalid

Trait Implementations§

§

impl Arbitrary for QualifiedProcedureName

§

type Parameters = ()

The type of parameters that arbitrary_with accepts for configuration of the generated Strategy. Parameters must implement Default.
§

type Strategy = Map<(fn() -> SourceSpan, BoxedStrategy<Arc<Path>>), fn((SourceSpan, Arc<Path>)) -> QualifiedProcedureName>

The type of Strategy used to generate values of type Self.
§

fn arbitrary_with( _top: <QualifiedProcedureName as Arbitrary>::Parameters, ) -> <QualifiedProcedureName as Arbitrary>::Strategy

Generates a Strategy for producing arbitrary values of type the implementing type (Self). The strategy is passed the arguments given in args. Read more
§

fn arbitrary() -> Self::Strategy

Generates a Strategy for producing arbitrary values of type the implementing type (Self). Read more
§

impl AsRef<Path> for QualifiedProcedureName

§

fn as_ref(&self) -> &Path

Converts this type into a shared reference of the (usually inferred) input type.
§

impl Clone for QualifiedProcedureName

§

fn clone(&self) -> QualifiedProcedureName

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
§

impl Debug for QualifiedProcedureName

§

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

Formats the value using the given formatter. Read more
§

impl Deref for QualifiedProcedureName

§

type Target = Path

The resulting type after dereferencing.
§

fn deref(&self) -> &<QualifiedProcedureName as Deref>::Target

Dereferences the value.
§

impl Display for QualifiedProcedureName

§

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

Formats the value using the given formatter. Read more
§

impl From<&Path> for QualifiedProcedureName

§

fn from(path: &Path) -> QualifiedProcedureName

Converts to this type from the input type.
§

impl From<Arc<Path>> for QualifiedProcedureName

§

fn from(path: Arc<Path>) -> QualifiedProcedureName

Converts to this type from the input type.
§

impl From<PathBuf> for QualifiedProcedureName

§

fn from(path: PathBuf) -> QualifiedProcedureName

Converts to this type from the input type.
§

impl FromStr for QualifiedProcedureName

§

type Err = Report

The associated error which can be returned from parsing.
§

fn from_str( s: &str, ) -> Result<QualifiedProcedureName, <QualifiedProcedureName as FromStr>::Err>

Parses a string s to return a value of this type. Read more
§

impl Join<QualifiedProcedureName> for Path

§

fn join(&self, other: &QualifiedProcedureName) -> PathBuf

Joins other to self, producing a new PathBuf containing the joined path. Read more
§

impl Join<QualifiedProcedureName> for PathBuf

§

fn join(&self, other: &QualifiedProcedureName) -> PathBuf

Joins other to self, producing a new PathBuf containing the joined path. Read more
§

impl Ord for QualifiedProcedureName

§

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

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

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

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

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

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

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

Restrict a value to a certain interval. Read more
§

impl PartialEq for QualifiedProcedureName

§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · 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.
§

impl PartialOrd for QualifiedProcedureName

§

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

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · 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 · 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 · 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 · 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
§

impl PrettyPrint for QualifiedProcedureName

§

fn render(&self) -> Document

The core of the [PrettyPrint] functionality. Read more
§

fn to_pretty_string(&self) -> String

Produce a String containing the results of pretty-printing this object. Read more
§

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

Pretty-print this object to the given core::fmt::Formatter. Read more
§

impl Spanned for QualifiedProcedureName

§

fn span(&self) -> SourceSpan

§

impl TryFrom<&str> for QualifiedProcedureName

§

type Error = Report

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

fn try_from( name: &str, ) -> Result<QualifiedProcedureName, <QualifiedProcedureName as TryFrom<&str>>::Error>

Performs the conversion.
§

impl TryFrom<String> for QualifiedProcedureName

§

type Error = Report

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

fn try_from( name: String, ) -> Result<QualifiedProcedureName, <QualifiedProcedureName as TryFrom<String>>::Error>

Performs the conversion.
§

impl Eq for QualifiedProcedureName

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

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

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

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

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

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

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

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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

impl<D> OwoColorize for D

§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either [OwoColorize::fg] or a color-specific method, such as [OwoColorize::green], Read more
§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either [OwoColorize::bg] or a color-specific method, such as [OwoColorize::on_yellow], Read more
§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
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> 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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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