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];
}
Expand description

Trait for types that can be stored in an ExternalPtr.

This provides the type identification needed for runtime type checking. Type identification uses R’s symbol interning (Rf_install) for fast pointer-based comparison.

§Type ID vs Type Name

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

    The crate name and version ensure:

    • Same type from same crate+version → compatible (can share ExternalPtr)
    • Same type name from different crates → incompatible
    • Same type from different crate versions → incompatible
  • 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 type checking).

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

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

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 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 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 ()

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 usize

Source§

const TYPE_NAME: &'static str = "usize"

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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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<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<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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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<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> 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 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 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 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 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 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 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 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 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: '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: '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 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 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 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 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 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 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: '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 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 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 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 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 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 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 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 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 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 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, 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: 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<F: Fn(usize, &mut [f64]) -> usize + 'static> TypedExternal for StreamingRealData<F>

Source§

const TYPE_NAME: &'static str = "StreamingRealData"

Source§

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

Source§

const TYPE_ID_CSTR: &'static [u8] = b"miniextendr_api::altrep::StreamingRealData\0"

Source§

impl<F: Fn(usize, &mut [i32]) -> usize + 'static> TypedExternal for StreamingIntData<F>

Source§

const TYPE_NAME: &'static str = "StreamingIntData"

Source§

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

Source§

const TYPE_ID_CSTR: &'static [u8] = b"miniextendr_api::altrep::StreamingIntData\0"

Source§

impl<I, T> TypedExternal for IterIntCoerceData<I, T>
where I: Iterator<Item = T> + 'static, T: Coerce<i32> + Copy + 'static,

Source§

const TYPE_NAME: &'static str = "IterIntCoerceData"

Source§

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

Source§

const TYPE_ID_CSTR: &'static [u8] = b"miniextendr_api::altrep::IterIntCoerceData\0"

Source§

impl<I, T> TypedExternal for IterRealCoerceData<I, T>
where I: Iterator<Item = T> + 'static, T: Coerce<f64> + Copy + 'static,

Source§

const TYPE_NAME: &'static str = "IterRealCoerceData"

Source§

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

Source§

const TYPE_ID_CSTR: &'static [u8] = b"miniextendr_api::altrep::IterRealCoerceData\0"

Source§

impl<I: Iterator<Item = bool> + 'static> TypedExternal for IterIntFromBoolData<I>

Source§

const TYPE_NAME: &'static str = "IterIntFromBoolData"

Source§

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

Source§

const TYPE_ID_CSTR: &'static [u8] = b"miniextendr_api::altrep::IterIntFromBoolData\0"

Source§

impl<I: Iterator<Item = bool> + 'static> TypedExternal for IterLogicalData<I>

Source§

const TYPE_NAME: &'static str = "IterLogicalData"

Source§

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

Source§

const TYPE_ID_CSTR: &'static [u8] = b"miniextendr_api::altrep::IterLogicalData\0"

Source§

impl<I: Iterator<Item = bool> + 'static> TypedExternal for SparseIterLogicalData<I>

Source§

const TYPE_NAME: &'static str = "SparseIterLogicalData"

Source§

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

Source§

const TYPE_ID_CSTR: &'static [u8] = b"miniextendr_api::altrep::SparseIterLogicalData\0"

Source§

impl<I: Iterator<Item = f64> + 'static> TypedExternal for IterRealData<I>

Source§

const TYPE_NAME: &'static str = "IterRealData"

Source§

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

Source§

const TYPE_ID_CSTR: &'static [u8] = b"miniextendr_api::altrep::IterRealData\0"

Source§

impl<I: Iterator<Item = f64> + 'static> TypedExternal for SparseIterRealData<I>

Source§

const TYPE_NAME: &'static str = "SparseIterRealData"

Source§

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

Source§

const TYPE_ID_CSTR: &'static [u8] = b"miniextendr_api::altrep::SparseIterRealData\0"

Source§

impl<I: Iterator<Item = f64> + 'static> TypedExternal for WindowedIterRealData<I>

Source§

const TYPE_NAME: &'static str = "WindowedIterRealData"

Source§

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

Source§

const TYPE_ID_CSTR: &'static [u8] = b"miniextendr_api::altrep::WindowedIterRealData\0"

Source§

impl<I: Iterator<Item = i32> + 'static> TypedExternal for IterIntData<I>

Source§

const TYPE_NAME: &'static str = "IterIntData"

Source§

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

Source§

const TYPE_ID_CSTR: &'static [u8] = b"miniextendr_api::altrep::IterIntData\0"

Source§

impl<I: Iterator<Item = i32> + 'static> TypedExternal for SparseIterIntData<I>

Source§

const TYPE_NAME: &'static str = "SparseIterIntData"

Source§

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

Source§

const TYPE_ID_CSTR: &'static [u8] = b"miniextendr_api::altrep::SparseIterIntData\0"

Source§

impl<I: Iterator<Item = i32> + 'static> TypedExternal for WindowedIterIntData<I>

Source§

const TYPE_NAME: &'static str = "WindowedIterIntData"

Source§

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

Source§

const TYPE_ID_CSTR: &'static [u8] = b"miniextendr_api::altrep::WindowedIterIntData\0"

Source§

impl<I: Iterator<Item = u8> + 'static> TypedExternal for IterRawData<I>

Source§

const TYPE_NAME: &'static str = "IterRawData"

Source§

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

Source§

const TYPE_ID_CSTR: &'static [u8] = b"miniextendr_api::altrep::IterRawData\0"

Source§

impl<I: Iterator<Item = u8> + 'static> TypedExternal for SparseIterRawData<I>

Source§

const TYPE_NAME: &'static str = "SparseIterRawData"

Source§

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

Source§

const TYPE_ID_CSTR: &'static [u8] = b"miniextendr_api::altrep::SparseIterRawData\0"

Source§

impl<I: Iterator<Item = Rcomplex> + 'static> TypedExternal for IterComplexData<I>

Source§

const TYPE_NAME: &'static str = "IterComplexData"

Source§

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

Source§

const TYPE_ID_CSTR: &'static [u8] = b"miniextendr_api::altrep::IterComplexData\0"

Source§

impl<I: Iterator<Item = Rcomplex> + 'static> TypedExternal for SparseIterComplexData<I>

Source§

const TYPE_NAME: &'static str = "SparseIterComplexData"

Source§

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

Source§

const TYPE_ID_CSTR: &'static [u8] = b"miniextendr_api::altrep::SparseIterComplexData\0"

Source§

impl<I: Iterator<Item = SEXP> + 'static> TypedExternal for IterListData<I>

Source§

const TYPE_NAME: &'static str = "IterListData"

Source§

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

Source§

const TYPE_ID_CSTR: &'static [u8] = b"miniextendr_api::altrep::IterListData\0"

Source§

impl<I: Iterator<Item = String> + 'static> TypedExternal for IterStringData<I>

Source§

const TYPE_NAME: &'static str = "IterStringData"

Source§

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

Source§

const TYPE_ID_CSTR: &'static [u8] = b"miniextendr_api::altrep::IterStringData\0"