Skip to main content

FieldType

Enum FieldType 

Source
pub enum FieldType {
Show 19 variants Bool, Uint8, Int8, Uint16, Int16, Uint32, Int32, Uint64, Int64, Float32, Float64, String, WString, BoundedString(usize), BoundedWString(usize), Nested(&'static NestedType), Array(usize, &'static FieldType), Sequence(&'static FieldType), BoundedSequence(usize, &'static FieldType),
}
Expand description

CDR / ROS-IDL type of a single field.

Covers every variant Cyclone DDS’ dynamic-type C API needs for constructing a dds_topic_descriptor_t at runtime:

  • primitives (bool, [iu]{8,16,32,64}, f{32,64})
  • strings (unbounded / bounded; narrow / wide)
  • nested structs (recurse into a child &'static [Field])
  • fixed-size arrays (T[N])
  • unbounded sequences (sequence<T>)
  • bounded sequences (sequence<T, N>)

The recursive variants (Nested, Array, Sequence, BoundedSequence) take a &'static reference so the entire schema graph stays in .rodata with no heap touch.

Variants§

§

Bool

IDL boolean — 1 byte, no alignment.

§

Uint8

IDL octet / uint8 — 1 byte, no alignment.

§

Int8

IDL int8 — 1 byte, no alignment.

§

Uint16

IDL uint16 — 2 bytes, 2-byte aligned.

§

Int16

IDL int16 — 2 bytes, 2-byte aligned.

§

Uint32

IDL uint32 — 4 bytes, 4-byte aligned.

§

Int32

IDL int32 — 4 bytes, 4-byte aligned.

§

Uint64

IDL uint64 — 8 bytes, 8-byte aligned.

§

Int64

IDL int64 — 8 bytes, 8-byte aligned.

§

Float32

IDL float / float32 — 4 bytes, 4-byte aligned.

§

Float64

IDL double / float64 — 8 bytes, 8-byte aligned.

§

String

Unbounded string (UTF-8 narrow).

§

WString

Unbounded wstring (UTF-16 wide).

§

BoundedString(usize)

Bounded string<N> (UTF-8 narrow, max N bytes excluding null).

§

BoundedWString(usize)

Bounded wstring<N> (UTF-16 wide, max N code units).

§

Nested(&'static NestedType)

Nested struct field; the inner slice is the child’s schema.

§

Array(usize, &'static FieldType)

Fixed-size array T[N].

§

Sequence(&'static FieldType)

Unbounded sequence<T>.

§

BoundedSequence(usize, &'static FieldType)

Bounded sequence<T, N>.

Trait Implementations§

Source§

impl Clone for FieldType

Source§

fn clone(&self) -> FieldType

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 Debug for FieldType

Source§

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

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

impl PartialEq for FieldType

Source§

fn eq(&self, other: &FieldType) -> 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 Copy for FieldType

Source§

impl Eq for FieldType

Source§

impl StructuralPartialEq for FieldType

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