[][src]Type Definition moore_vhdl::ty2::IntegerSubtype

type IntegerSubtype<'t> = ScalarSubtype<'t, dyn IntegerType, BigInt>;

A subtype of an integer type.

Implementations

impl<'t> IntegerSubtype<'t>[src]

pub fn new(
    mark: &'t TypeMark<'t>,
    range: Range<BigInt>
) -> Option<IntegerSubtype<'t>>
[src]

Create a new integer subtype.

Returns Some(...) if range is a subrange of the integer, or None otherwise.

Example

use moore_vhdl::ty2::{Type, TypeMark, IntegerBasetype, IntegerSubtype, Range};
use moore_common::name::get_name_table;

let ty = IntegerBasetype::new(Range::ascending(0usize, 255usize));
let tm = TypeMark::new(
    get_name_table().intern("BYTE", false),
    &ty,
);
let a = IntegerSubtype::new(&tm, Range::ascending(0usize, 15usize)).unwrap();
let b = IntegerSubtype::new(&tm, Range::descending(15usize, 0usize)).unwrap();

assert_eq!(format!("{}", a), "BYTE range 0 to 15");
assert_eq!(format!("{}", b), "BYTE range 15 downto 0");

Trait Implementations

impl<'t> Display for IntegerSubtype<'t>[src]

impl<'t> IntegerType for IntegerSubtype<'t>[src]

impl<'t> Type for IntegerSubtype<'t>[src]