Skip to main content

TypedExternal

Trait TypedExternal 

Source
pub trait TypedExternal: 'static {
    const TYPE_NAME: &'static str;
    const TYPE_NAME_CSTR: &'static [u8];
    const TYPE_ID_CSTR: &'static [u8];
    const R_SLOT_COUNT: usize = 0;
#[doc(hidden)]
const SIDECAR_NAMES: &'static [&'static str] = _; const RESTORED_ERROR_CLASS: &'static [&'static str] = _; const RESTORED_ERROR_MESSAGE: Option<&'static str> = None; const FIELD_ERROR_CLASS: &'static [&'static str] = _; const FIELD_ERROR_MESSAGE: Option<&'static str> = None;
#[doc(hidden)]
const REBUILDS: bool = false;
#[doc(hidden)]
const REBUILDS_ANY_VERSION: bool = false; // Provided methods
#[doc(hidden)]
fn __mx_visit_sidecars( &self, _visit: &mut dyn FnMut(usize, &'static str, &dyn SidecarField), ) { ... }
#[doc(hidden)]
fn __mx_rebuild(saved: &Saved<'_, Self>) -> Result<Self, RCondition> where Self: Sized { ... } }
Expand description

Trait for types that can be stored in an ExternalPtr.

This provides R-visible display and diagnostic identifiers. Runtime type checking is performed by Any::downcast (Rust’s TypeId), not by comparing these symbols.

§Type ID vs Type Name

  • TYPE_ID_CSTR: Namespaced identifier used in mismatch diagnostics (stored in prot[0]). Format: "<crate_name>@<crate_version>::<module_path>::<type_name>\0"

    The crate name, version, and module path distinguish otherwise similar names in error messages. They do not determine compatibility.

  • TYPE_NAME_CSTR: Short display name for the R tag (shown when printing). Just the type identifier for readability.

Required Associated Constants§

Source

const TYPE_NAME: &'static str

The type name as a static string (for debugging and display)

Source

const TYPE_NAME_CSTR: &'static [u8]

The type name as a null-terminated C string (for R tag display)

Source

const TYPE_ID_CSTR: &'static [u8]

Namespaced type ID as a null-terminated C string (for diagnostics).

This should include the module path to prevent ambiguous messages. Use concat!(module_path!(), "::", stringify!(Type), "\0").as_bytes() when implementing manually, or use #[derive(ExternalPtr)].

Provided Associated Constants§

Source

const R_SLOT_COUNT: usize = 0

Number of Sidecar<T> fields: values the external pointer’s protection list keeps after the type ID and the user slot.

#[derive(ExternalPtr)] counts the type’s #[r_data] fields of type Sidecar<_>.

Source

#[doc(hidden)]
const SIDECAR_NAMES: &'static [&'static str] = _

The R names of the Sidecar fields (#[r_data(name = "..")], else the Rust field name), in slot order: the names the protection list carries, so a save is read back by field name (#2187, #2215).

Source

const RESTORED_ERROR_CLASS: &'static [&'static str] = _

The package’s condition classes for a pointer of this type restored from a saved session, in front of the miniextendr_restored* classes (RESTORED_NO_VALUE_CLASS / RESTORED_OTHER_VERSION_CLASS, then RESTORED_CLASS), which every restored refusal keeps.

#[derive(ExternalPtr)] fills it from #[externalptr(restored(class = "pkg_saved"))] or restored(class = ["pkg_saved", "pkg_error"]); the default adds nothing.

Source

const RESTORED_ERROR_MESSAGE: Option<&'static str> = None

The package’s message for a pointer of this type restored from a saved session, replacing miniextendr’s in both the no-value and the other-version case (the condition’s saved_version / current_version fields stay), and for a list or environment of the class that carries no pointer (a save in an older format). A static string: one type is one R class, so the package names it literally.

#[derive(ExternalPtr)] fills it from #[externalptr(restored(message = "..."))]; the default keeps miniextendr’s messages.

Source

const FIELD_ERROR_CLASS: &'static [&'static str] = _

The package’s condition classes for the errors the type’s R field readers raise themselves (#1899), in front of their own class: a refused position (subscriptOutOfBoundsError), a name that is not a field (miniextendr_no_field), a computed field assigned to (miniextendr_read_only_field), a pointer of another type, and a receiver that carries no pointer (NO_HANDLE_CLASS). The R accessors of the type read it for the last two; the derive writes the same classes into the R helpers for the others.

#[derive(ExternalPtr)] fills it from #[externalptr(field_error(class = ["pkg_error_config", "pkg_error"]))]; the default adds nothing.

Source

const FIELD_ERROR_MESSAGE: Option<&'static str> = None

The package’s message for the R accessors’ refusal of a receiver whose pointer is not a T or that carries no pointer (#1920), replacing miniextendr’s, which names the receiver’s R class.

#[derive(ExternalPtr)] fills it from #[externalptr(field_error(message = "..."))].

Source

#[doc(hidden)]
const REBUILDS: bool = false

Whether a pointer of this type that this version of its crate saved is rebuilt on first use after readRDS(), by Self::__mx_rebuild, instead of refused.

#[derive(ExternalPtr)] sets it with #[externalptr(rebuild = path)].

Source

#[doc(hidden)]
const REBUILDS_ANY_VERSION: bool = false

Whether Self::__mx_rebuild also rebuilds a pointer another version of the crate saved, when the save carries slot names. #[derive(ExternalPtr)] sets it with any_version next to rebuild = path (#2187).

Provided Methods§

Source

#[doc(hidden)]
fn __mx_visit_sidecars( &self, _visit: &mut dyn FnMut(usize, &'static str, &dyn SidecarField), )

Visits every Sidecar<T> field of self with its slot index and name, so the handle can flush the field’s pending value into its slot or load the slot back into the field.

#[derive(ExternalPtr)] emits the body for a type with Sidecar fields; the default visits nothing, so other types pay nothing.

Source

#[doc(hidden)]
fn __mx_rebuild(saved: &Saved<'_, Self>) -> Result<Self, RCondition>
where Self: Sized,

Rebuilds the value of a pointer of this type restored from a saved session, from what the save kept. #[derive(ExternalPtr)] emits it for #[externalptr(rebuild = path)]: it calls path and turns its Err into a condition.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl TypedExternal for ()

Source§

const TYPE_NAME: &'static str = "()"

Source§

const TYPE_NAME_CSTR: &'static [u8] = b"()\0"

Source§

const TYPE_ID_CSTR: &'static [u8] = b"()\0"

Source§

impl TypedExternal for AtomicBool

Source§

const TYPE_NAME: &'static str = "AtomicBool"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for AtomicI8

Source§

const TYPE_NAME: &'static str = "AtomicI8"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for AtomicI16

Source§

const TYPE_NAME: &'static str = "AtomicI16"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for AtomicI32

Source§

const TYPE_NAME: &'static str = "AtomicI32"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for AtomicI64

Source§

const TYPE_NAME: &'static str = "AtomicI64"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for AtomicIsize

Source§

const TYPE_NAME: &'static str = "AtomicIsize"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for AtomicU8

Source§

const TYPE_NAME: &'static str = "AtomicU8"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for AtomicU16

Source§

const TYPE_NAME: &'static str = "AtomicU16"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for AtomicU32

Source§

const TYPE_NAME: &'static str = "AtomicU32"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for AtomicU64

Source§

const TYPE_NAME: &'static str = "AtomicU64"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for AtomicUsize

Source§

const TYPE_NAME: &'static str = "AtomicUsize"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for Barrier

Source§

const TYPE_NAME: &'static str = "Barrier"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for BarrierWaitResult

Source§

const TYPE_NAME: &'static str = "BarrierWaitResult"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for CString

Source§

const TYPE_NAME: &'static str = "CString"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for Duration

Source§

const TYPE_NAME: &'static str = "Duration"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for File

Source§

const TYPE_NAME: &'static str = "File"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for Instant

Source§

const TYPE_NAME: &'static str = "Instant"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for IpAddr

Source§

const TYPE_NAME: &'static str = "IpAddr"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for Ipv4Addr

Source§

const TYPE_NAME: &'static str = "Ipv4Addr"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for Ipv6Addr

Source§

const TYPE_NAME: &'static str = "Ipv6Addr"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for NonZeroI8

Source§

const TYPE_NAME: &'static str = "NonZero"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for NonZeroI16

Source§

const TYPE_NAME: &'static str = "NonZero"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for NonZeroI32

Source§

const TYPE_NAME: &'static str = "NonZero"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for NonZeroI64

Source§

const TYPE_NAME: &'static str = "NonZero"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for NonZeroI128

Source§

const TYPE_NAME: &'static str = "NonZero"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for NonZeroIsize

Source§

const TYPE_NAME: &'static str = "NonZero"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for NonZeroU8

Source§

const TYPE_NAME: &'static str = "NonZero"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for NonZeroU16

Source§

const TYPE_NAME: &'static str = "NonZero"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for NonZeroU32

Source§

const TYPE_NAME: &'static str = "NonZero"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for NonZeroU64

Source§

const TYPE_NAME: &'static str = "NonZero"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for NonZeroU128

Source§

const TYPE_NAME: &'static str = "NonZero"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for NonZeroUsize

Source§

const TYPE_NAME: &'static str = "NonZero"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for OsString

Source§

const TYPE_NAME: &'static str = "OsString"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for PathBuf

Source§

const TYPE_NAME: &'static str = "PathBuf"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for RangeFull

Source§

const TYPE_NAME: &'static str = "RangeFull"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for SocketAddr

Source§

const TYPE_NAME: &'static str = "SocketAddr"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for SocketAddrV4

Source§

const TYPE_NAME: &'static str = "SocketAddrV4"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for SocketAddrV6

Source§

const TYPE_NAME: &'static str = "SocketAddrV6"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for String

Source§

const TYPE_NAME: &'static str = "String"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for SystemTime

Source§

const TYPE_NAME: &'static str = "SystemTime"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for TcpListener

Source§

const TYPE_NAME: &'static str = "TcpListener"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for TcpStream

Source§

const TYPE_NAME: &'static str = "TcpStream"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for Thread

Source§

const TYPE_NAME: &'static str = "Thread"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for UdpSocket

Source§

const TYPE_NAME: &'static str = "UdpSocket"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for bool

Source§

const TYPE_NAME: &'static str = "bool"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for char

Source§

const TYPE_NAME: &'static str = "char"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for f32

Source§

const TYPE_NAME: &'static str = "f32"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for f64

Source§

const TYPE_NAME: &'static str = "f64"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for i8

Source§

const TYPE_NAME: &'static str = "i8"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for i16

Source§

const TYPE_NAME: &'static str = "i16"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for i32

Source§

const TYPE_NAME: &'static str = "i32"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for i64

Source§

const TYPE_NAME: &'static str = "i64"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for i128

Source§

const TYPE_NAME: &'static str = "i128"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for isize

Source§

const TYPE_NAME: &'static str = "isize"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for u8

Source§

const TYPE_NAME: &'static str = "u8"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for u16

Source§

const TYPE_NAME: &'static str = "u16"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for u32

Source§

const TYPE_NAME: &'static str = "u32"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for u64

Source§

const TYPE_NAME: &'static str = "u64"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for u128

Source§

const TYPE_NAME: &'static str = "u128"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl TypedExternal for usize

Source§

const TYPE_NAME: &'static str = "usize"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static, L: 'static> TypedExternal for (A, B, C, D, E, F, G, H, I, J, K, L)

Source§

const TYPE_NAME: &'static str = "Tuple12"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static> TypedExternal for (A, B, C, D, E, F, G, H, I, J, K)

Source§

const TYPE_NAME: &'static str = "Tuple11"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static> TypedExternal for (A, B, C, D, E, F, G, H, I, J)

Source§

const TYPE_NAME: &'static str = "Tuple10"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static> TypedExternal for (A, B, C, D, E, F, G, H, I)

Source§

const TYPE_NAME: &'static str = "Tuple9"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static> TypedExternal for (A, B, C, D, E, F, G, H)

Source§

const TYPE_NAME: &'static str = "Tuple8"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static> TypedExternal for (A, B, C, D, E, F, G)

Source§

const TYPE_NAME: &'static str = "Tuple7"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> TypedExternal for (A, B, C, D, E, F)

Source§

const TYPE_NAME: &'static str = "Tuple6"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> TypedExternal for (A, B, C, D, E)

Source§

const TYPE_NAME: &'static str = "Tuple5"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<A: 'static, B: 'static, C: 'static, D: 'static> TypedExternal for (A, B, C, D)

Source§

const TYPE_NAME: &'static str = "Tuple4"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<A: 'static, B: 'static, C: 'static> TypedExternal for (A, B, C)

Source§

const TYPE_NAME: &'static str = "Tuple3"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<A: 'static, B: 'static> TypedExternal for (A, B)

Source§

const TYPE_NAME: &'static str = "Tuple2"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<A: 'static> TypedExternal for (A,)

Source§

const TYPE_NAME: &'static str = "Tuple1"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<K: 'static, V: 'static> TypedExternal for BTreeMap<K, V>

Source§

const TYPE_NAME: &'static str = "BTreeMap"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<K: 'static, V: 'static> TypedExternal for HashMap<K, V>

Source§

const TYPE_NAME: &'static str = "HashMap"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<R: Read + 'static> TypedExternal for BufReader<R>

Source§

const TYPE_NAME: &'static str = "BufReader"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static, E: 'static> TypedExternal for Result<T, E>

Source§

const TYPE_NAME: &'static str = "Result"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static, const N: usize> TypedExternal for [T; N]

Source§

const TYPE_NAME: &'static str = "Array"

Source§

const TYPE_NAME_CSTR: &'static [u8] = b"Array\0"

Source§

const TYPE_ID_CSTR: &'static [u8] = b"std::Array\0"

Source§

impl<T: 'static> TypedExternal for &'static [T]

Source§

const TYPE_NAME: &'static str = "StaticSlice"

Source§

const TYPE_NAME_CSTR: &'static [u8] = b"StaticSlice\0"

Source§

const TYPE_ID_CSTR: &'static [u8] = b"std::StaticSlice\0"

Source§

impl<T: 'static> TypedExternal for &'static mut [T]

Source§

const TYPE_NAME: &'static str = "StaticMutSlice"

Source§

const TYPE_NAME_CSTR: &'static [u8] = b"StaticMutSlice\0"

Source§

const TYPE_ID_CSTR: &'static [u8] = b"std::StaticMutSlice\0"

Source§

impl<T: 'static> TypedExternal for BTreeSet<T>

Source§

const TYPE_NAME: &'static str = "BTreeSet"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for BinaryHeap<T>

Source§

const TYPE_NAME: &'static str = "BinaryHeap"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for Box<T>

Source§

const TYPE_NAME: &'static str = "Box"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for Box<[T]>

Source§

const TYPE_NAME: &'static str = "BoxSlice"

Source§

const TYPE_NAME_CSTR: &'static [u8] = b"BoxSlice\0"

Source§

const TYPE_ID_CSTR: &'static [u8] = b"std::BoxSlice\0"

Source§

impl<T: 'static> TypedExternal for Cell<T>

Source§

const TYPE_NAME: &'static str = "Cell"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for Cursor<T>

Source§

const TYPE_NAME: &'static str = "Cursor"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for HashSet<T>

Source§

const TYPE_NAME: &'static str = "HashSet"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for JoinHandle<T>

Source§

const TYPE_NAME: &'static str = "JoinHandle"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for LinkedList<T>

Source§

const TYPE_NAME: &'static str = "LinkedList"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for MaybeUninit<T>

Source§

const TYPE_NAME: &'static str = "MaybeUninit"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for Mutex<T>

Source§

const TYPE_NAME: &'static str = "Mutex"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for OnceLock<T>

Source§

const TYPE_NAME: &'static str = "OnceLock"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for Option<T>

Source§

const TYPE_NAME: &'static str = "Option"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for PhantomData<T>

Source§

const TYPE_NAME: &'static str = "PhantomData"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for Pin<T>

Source§

const TYPE_NAME: &'static str = "Pin"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for Range<T>

Source§

const TYPE_NAME: &'static str = "Range"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for RangeFrom<T>

Source§

const TYPE_NAME: &'static str = "RangeFrom"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for RangeInclusive<T>

Source§

const TYPE_NAME: &'static str = "RangeInclusive"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for RangeTo<T>

Source§

const TYPE_NAME: &'static str = "RangeTo"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for RangeToInclusive<T>

Source§

const TYPE_NAME: &'static str = "RangeToInclusive"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for Receiver<T>

Source§

const TYPE_NAME: &'static str = "Receiver"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for RefCell<T>

Source§

const TYPE_NAME: &'static str = "RefCell"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for RwLock<T>

Source§

const TYPE_NAME: &'static str = "RwLock"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for Saturating<T>

Source§

const TYPE_NAME: &'static str = "Saturating"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for Sender<T>

Source§

const TYPE_NAME: &'static str = "Sender"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for SyncSender<T>

Source§

const TYPE_NAME: &'static str = "SyncSender"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for UnsafeCell<T>

Source§

const TYPE_NAME: &'static str = "UnsafeCell"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for Vec<T>

Source§

const TYPE_NAME: &'static str = "Vec"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for VecDeque<T>

Source§

const TYPE_NAME: &'static str = "VecDeque"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: 'static> TypedExternal for Wrapping<T>

Source§

const TYPE_NAME: &'static str = "Wrapping"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: ?Sized + 'static> TypedExternal for Arc<T>

Source§

const TYPE_NAME: &'static str = "Arc"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: ?Sized + 'static> TypedExternal for Rc<T>

Source§

const TYPE_NAME: &'static str = "Rc"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Source§

impl<T: Clone + 'static> TypedExternal for Cow<'static, [T]>

Source§

const TYPE_NAME: &'static str = "CowSlice"

Source§

const TYPE_NAME_CSTR: &'static [u8] = b"CowSlice\0"

Source§

const TYPE_ID_CSTR: &'static [u8] = b"std::CowSlice\0"

Source§

impl<T: TypedExternal> TypedExternal for ManuallyDrop<T>

Source§

const TYPE_NAME: &'static str = T::TYPE_NAME

Source§

const TYPE_NAME_CSTR: &'static [u8] = T::TYPE_NAME_CSTR

Source§

const TYPE_ID_CSTR: &'static [u8] = T::TYPE_ID_CSTR

Source§

impl<W: Write + 'static> TypedExternal for BufWriter<W>

Source§

const TYPE_NAME: &'static str = "BufWriter"

Source§

const TYPE_NAME_CSTR: &'static [u8]

Source§

const TYPE_ID_CSTR: &'static [u8]

Implementors§

Source§

impl<T: RNativeType> TypedExternal for AltrepBuffer<T>

Source§

const TYPE_NAME: &'static str = "AltrepBuffer"

Source§

const TYPE_NAME_CSTR: &'static [u8] = b"AltrepBuffer\0"

Source§

const TYPE_ID_CSTR: &'static [u8] = b"miniextendr::AltrepBuffer\0"