Skip to main content

Extern

Struct Extern 

Source
pub struct Extern {
    pub name: Ident,
    pub target: Option<String>,
    pub origin: Origin<Item>,
}
Expand description

A type the flat API names but whose contents it does not model.

Two spellings declare one thing, because what the frontend records is the fact rather than the Rust shape that carried it:

  • #[prebindgen] pub type X = path::To<Thing>; — how a foreign or crate-private type gets a name here. A one-way road: the name is thereafter the only way to spell that type inside the flat API, and the qualified path stays refused. This declares a name; it is not an equivalence between spellings: the normalization that makes std::vec::Vec<T> and Vec<T> one key covers the names the language predeclares, and a crate’s own alias is never one of those — treating it as one is a category error.
  • #[prebindgen] pub struct X(..); — a tuple struct, whose fields no adapter has ever crossed.

Not necessarily a handle: #[prebindgen] pub type Duration = std::time::Duration; crosses by value through a convert!, erased to a plain integer. What it becomes — an opaque pointer, a ptr_class, a conversion — is the adapter’s decision, and this says only that the frontend does not model the contents.

Fields§

§name: Ident§target: Option<String>

What the declaration points at, for an alias — std::time::Duration, zenoh::Session, handles::Storage. None for a tuple struct, which is itself the definition.

Informational, and deliberately not classified. Error is Box<dyn std::error::Error + Send + Sync> behind a zenoh:: alias in one crate and spelled openly in another, so being “a std type” is a property of the spelling, not of the type. An adapter that wants to recognise a target may; the frontend does not decide for it.

§origin: Origin<Item>

The declaring item — a type alias or a tuple struct.

Trait Implementations§

Source§

impl Clone for Extern

Source§

fn clone(&self) -> Extern

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 Extern

Source§

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

Formats the value using the given formatter. Read more

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.

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