Name

Struct Name 

Source
pub struct Name<'s>(/* private fields */);
Expand description

Name for a local socket.

Due to significant differences between how different platforms name local sockets, there needs to be a way to store and process those in a unified way while also retaining those platform-specific pecularities. Name exists to bridge the gap between portability and correctness, minimizing the amount of platform-dependent code in downstream programs.

§Creation

Two traits are used to create names from basic strings: ToFsName and ToNsName.

§Validity

As mentioned in the module-level documentation, not all platforms support all types of local socket names. Names pointing to filesystem locations are only supported on Unix-like systems, and names pointing to an abstract namespace reserved specifically for local sockets are only available on Linux and Windows.

Instances of this type cannot be constructed from unsupported values. They can, however, be constructed from invalid ones.

Implementations§

Source§

impl Name<'_>

Source

pub fn is_namespaced(&self) -> bool

Returns true if the name points to a dedicated local socket namespace, false otherwise.

Source

pub const fn is_path(&self) -> bool

Returns true if the name is stored as a filesystem path, false otherwise.

Note that it is possible for .is_namespaced() and .is_path() to return true simultaneously:

use interprocess::{local_socket::ToFsName, os::windows::local_socket::NamedPipe};
let name = r"\\.\pipe\example".to_fs_name::<NamedPipe>().unwrap();
assert!(name.is_namespaced()); // \\.\pipe\ is a namespace
assert!(name.is_path());       // \\.\pipe\example is a path
Source

pub fn borrow(&self) -> Name<'_>

Produces a Name that borrows from self.

Source

pub fn into_owned(self) -> Name<'static>

Extends the lifetime to 'static, cloning if necessary.

Trait Implementations§

Source§

impl<'s> Clone for Name<'s>

Source§

fn clone(&self) -> Name<'s>

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

impl<'s> Debug for Name<'s>

Source§

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

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

impl<'s> PartialEq for Name<'s>

Source§

fn eq(&self, other: &Name<'s>) -> 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.
Source§

impl<'s> Eq for Name<'s>

Source§

impl<'s> StructuralPartialEq for Name<'s>

Auto Trait Implementations§

§

impl<'s> Freeze for Name<'s>

§

impl<'s> RefUnwindSafe for Name<'s>

§

impl<'s> Send for Name<'s>

§

impl<'s> Sync for Name<'s>

§

impl<'s> Unpin for Name<'s>

§

impl<'s> UnwindSafe for Name<'s>

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.

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> TryClone for T
where T: Clone,

Source§

fn try_clone(&self) -> Result<T, Error>

Clones self, possibly returning an error.
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.