Trait IntegerExt

pub trait IntegerExt {
    // Required methods
    fn to_ty<'db>(&self, interner: DbInterner<'db>, signed: bool) -> Ty<'db>;
    fn from_int_ty<C>(cx: &C, ity: IntTy) -> Integer
       where C: HasDataLayout;
    fn from_uint_ty<C>(cx: &C, ity: UintTy) -> Integer
       where C: HasDataLayout;
    fn repr_discr<'db>(
        interner: DbInterner<'db>,
        ty: Ty<'db>,
        repr: &ReprOptions,
        min: i128,
        max: i128,
    ) -> (Integer, bool);
}

Required Methods§

fn to_ty<'db>(&self, interner: DbInterner<'db>, signed: bool) -> Ty<'db>

fn from_int_ty<C>(cx: &C, ity: IntTy) -> Integer
where C: HasDataLayout,

fn from_uint_ty<C>(cx: &C, ity: UintTy) -> Integer
where C: HasDataLayout,

fn repr_discr<'db>( interner: DbInterner<'db>, ty: Ty<'db>, repr: &ReprOptions, min: i128, max: i128, ) -> (Integer, bool)

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§

§

impl IntegerExt for Integer

§

fn repr_discr<'db>( interner: DbInterner<'db>, ty: Ty<'db>, repr: &ReprOptions, min: i128, max: i128, ) -> (Integer, bool)

Finds the appropriate Integer type and signedness for the given signed discriminant range and #[repr] attribute. N.B.: u128 values above i128::MAX will be treated as signed, but that shouldn’t affect anything, other than maybe debuginfo.

§

fn to_ty<'db>(&self, interner: DbInterner<'db>, signed: bool) -> Ty<'db>

§

fn from_int_ty<C>(cx: &C, ity: IntTy) -> Integer
where C: HasDataLayout,

§

fn from_uint_ty<C>(cx: &C, ity: UintTy) -> Integer
where C: HasDataLayout,

Implementors§