type EnumSubtype<'t> = ScalarSubtype<'t, dyn EnumType, usize>;
A subtype of an enumeration type.
Create a new enumeration subtype.
use moore_vhdl::ty2::{Type, TypeMark, EnumBasetype, EnumSubtype, Range};
use moore_vhdl::common::name::get_name_table;
let ty = EnumBasetype::new(vec![
"first".into(),
"second".into(),
'0'.into(),
'1'.into(),
]);
let tm = TypeMark::new(
get_name_table().intern("MY_TYPE", false),
&ty,
);
let subty = EnumSubtype::new(&tm, Range::ascending(1usize, 2usize)).unwrap();
assert_eq!(format!("{}", subty), "MY_TYPE range second to '0'");
Converts from &Type
to AnyType
.
Convert into an owned type.
Check if two types are equal.
Check if the type can be implicitly cast to another.
The variants of this enumeration type.
The range of variants this type can assume. Read more
The base type of this enumeration.
Returns Some
if self is an EnumSubtype
, None
otherwise.
Check if two enumeration types are equal.
The resolution function associated with this type.
Returns Some
if self is an EnumBasetype
, None
otherwise.
Returns an &EnumBasetype
or panics if the type is not a basetype.
Returns an &EnumSubtype
or panics if the type is not a subtype.
Formats the value using the given formatter. Read more