Enum PrimitiveType

Source
pub enum PrimitiveType {
    I32,
    I64,
    U32,
    U64,
    F32,
    F64,
    Bool,
    String,
    UnspecifiedInt,
    UnspecifiedFloat,
    Unit,
    Unknown,
}
Expand description

Represents all primitive types in the language

Variants§

§

I32

32-bit signed integer

§

I64

64-bit signed integer

§

U32

32-bit unsigned integer

§

U64

64-bit unsigned integer

§

F32

32-bit floating point

§

F64

64-bit floating point

§

Bool

Boolean type

§

String

String type

§

UnspecifiedInt

Unspecified integer type (for literals)

§

UnspecifiedFloat

Unspecified float type (for literals)

§

Unit

Unit type (similar to Rust’s ())

§

Unknown

Unknown type

Implementations§

Source§

impl PrimitiveType

Source

pub const fn name(&self) -> &'static str

Source

pub fn from_str(s: &str) -> Option<Self>

Source§

impl PrimitiveType

Source

pub fn iter() -> impl Iterator<Item = PrimitiveType> + Clone

Source§

impl PrimitiveType

Source

pub fn from_int<T: Into<usize>>(value: T) -> Option<Self>

Source§

impl PrimitiveType

Source

pub fn is_numeric(&self) -> bool

Check if this is a numeric type (integer or float)

Source

pub fn is_integer(&self) -> bool

Check if this is an integer type

Source

pub fn is_float(&self) -> bool

Check if this is a float type

Source

pub fn is_signed_integer(&self) -> bool

Check if this is a signed integer type

Source

pub fn is_unsigned_integer(&self) -> bool

Check if this is an unsigned integer type

Source

pub fn bit_width(&self) -> u8

Get the bit width of this type (0 for unspecified types)

Source

pub fn to_type_kind(&self) -> TypeKind

Get the TypeKind for this primitive type

This method defines the actual type characteristics for each primitive type, separating type definition from type registration logic.

Trait Implementations§

Source§

impl Clone for PrimitiveType

Source§

fn clone(&self) -> PrimitiveType

Returns a copy 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 PrimitiveType

Source§

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

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

impl From<PrimitiveType> for TypeId

Source§

fn from(primitive: PrimitiveType) -> Self

Converts to this type from the input type.
Source§

impl From<PrimitiveType> for usize

Source§

fn from(primitive: PrimitiveType) -> usize

Converts to this type from the input type.
Source§

impl Hash for PrimitiveType

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for PrimitiveType

Source§

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

Source§

impl Eq for PrimitiveType

Source§

impl StructuralPartialEq for PrimitiveType

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.