Trait Builder

Source
pub trait Builder<'a>:
    Clone
    + Sealed
    + 'a {
    type BB<'b, 'e, 'd>: BB<'b, Func<'b>: Value<'b, Kind = Self::ValKind<'e, 'd>>>
       where Self: 'b + 'e + 'd,
             'a: 'b;
    type ValKind<'d, 'b>: ValueKind<Ty<'d> = Self::Ty<'d>, Mod<'b> = Self::Mod<'b>>
       where Self: 'd + 'b;
    type Mod<'b>: Mod<'b, Ctx<'b> = Self::Ctx<'b>>
       where Self: 'b;
    type Ty<'b>: Ty<'b>
       where Self: 'b;
    type Ctx<'b>: Ctx<'b>
       where Self: 'b;

Show 18 methods // Required methods fn new_in_ctx(ctx: Self::Ctx<'a>) -> Self; fn continue<'b, 'c>(&'b self, bb: Self::BB<'c, '_, '_>) where 'a: 'b + 'c; fn call<'b, 'c, 'd, 'e, 'f, 'h, 'i, 'g: 'a + 'b + 'c + 'd + 'e + 'f + 'h + 'i>( &'b self, resty: Self::Ty<'c>, fn: <Self::ValKind<'_, '_> as ValueKind>::Val<'d, Normal>, args: impl Iterator<Item = <Self::ValKind<'h, 'i> as ValueKind>::Val<'e, Normal>>, name: &'f CStr, ) -> <Self::ValKind<'_, '_> as ValueKind>::Val<'g, Normal> where Self: 'h + 'i; // Provided methods fn Alloca<'b, 'ty, 'name, 'res: 'ty + 'name + 'b>( &'b self, ty: Self::Ty<'ty>, name: &'name CStr, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal> where 'a: 'ty + 'name { ... } fn Load2<'b, 'ty, 'ptr, 'name, 'res: 'ty + 'ptr + 'name + 'b>( &'b self, ty: Self::Ty<'ty>, pointer: <Self::ValKind<'a, 'a> as ValueKind>::Val<'ptr, Normal>, name: &'name CStr, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal> where 'a: 'ty + 'ptr + 'name { ... } fn Store<'b, 'val, 'ptr, 'res: 'val + 'ptr + 'b>( &'b self, value: <Self::ValKind<'a, 'a> as ValueKind>::Val<'val, Normal>, pointer: <Self::ValKind<'a, 'a> as ValueKind>::Val<'ptr, Normal>, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal> where 'a: 'val + 'ptr { ... } fn Add<'b, 'lhs, 'rhs, 'name, 'res: 'lhs + 'rhs + 'name + 'b>( &'b self, lhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'lhs, Normal>, rhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'rhs, Normal>, name: &'name CStr, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal> where 'a: 'lhs + 'rhs + 'name { ... } fn And<'b, 'lhs, 'rhs, 'name, 'res: 'lhs + 'rhs + 'name + 'b>( &'b self, lhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'lhs, Normal>, rhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'rhs, Normal>, name: &'name CStr, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal> where 'a: 'lhs + 'rhs + 'name { ... } fn Neg<'b, 'lhs, 'name, 'res: 'lhs + 'name + 'b>( &'b self, lhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'lhs, Normal>, name: &'name CStr, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal> where 'a: 'lhs + 'name { ... } fn Not<'b, 'lhs, 'name, 'res: 'lhs + 'name + 'b>( &'b self, lhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'lhs, Normal>, name: &'name CStr, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal> where 'a: 'lhs + 'name { ... } fn TruncOrBitCast<'b, 'lhs, 'ty, 'name, 'res: 'lhs + 'ty + 'name + 'b>( &'b self, lhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'lhs, Normal>, ty: Self::Ty<'ty>, name: &'name CStr, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal> where 'a: 'lhs + 'ty + 'name { ... } fn Mul<'b, 'lhs, 'rhs, 'name, 'res: 'lhs + 'rhs + 'name + 'b>( &'b self, lhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'lhs, Normal>, rhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'rhs, Normal>, name: &'name CStr, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal> where 'a: 'lhs + 'rhs + 'name { ... } fn Or<'b, 'lhs, 'rhs, 'name, 'res: 'lhs + 'rhs + 'name + 'b>( &'b self, lhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'lhs, Normal>, rhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'rhs, Normal>, name: &'name CStr, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal> where 'a: 'lhs + 'rhs + 'name { ... } fn Sub<'b, 'lhs, 'rhs, 'name, 'res: 'lhs + 'rhs + 'name + 'b>( &'b self, lhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'lhs, Normal>, rhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'rhs, Normal>, name: &'name CStr, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal> where 'a: 'lhs + 'rhs + 'name { ... } fn Xor<'b, 'lhs, 'rhs, 'name, 'res: 'lhs + 'rhs + 'name + 'b>( &'b self, lhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'lhs, Normal>, rhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'rhs, Normal>, name: &'name CStr, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal> where 'a: 'lhs + 'rhs + 'name { ... } fn ICmp<'b, 'op, 'lhs, 'rhs, 'name, 'res: 'op + 'lhs + 'rhs + 'name + 'b>( &'b self, op: ICmp, lhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'lhs, Normal>, rhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'rhs, Normal>, name: &'name CStr, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal> where 'a: 'op + 'lhs + 'rhs + 'name { ... } fn Br<'b, 'dest, 'res: 'dest + 'b>( &'b self, dest: Self::BB<'dest, 'a, 'a>, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal> where 'a: 'dest { ... } fn CondBr<'b, 'cond, 'then, 'e, 'res: 'cond + 'then + 'e + 'b>( &'b self, if: <Self::ValKind<'a, 'a> as ValueKind>::Val<'cond, Normal>, then: Self::BB<'then, 'a, 'a>, else: Self::BB<'e, 'a, 'a>, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal> where 'a: 'cond + 'then + 'e { ... }
}

Required Associated Types§

Source

type BB<'b, 'e, 'd>: BB<'b, Func<'b>: Value<'b, Kind = Self::ValKind<'e, 'd>>> where Self: 'b + 'e + 'd, 'a: 'b

Source

type ValKind<'d, 'b>: ValueKind<Ty<'d> = Self::Ty<'d>, Mod<'b> = Self::Mod<'b>> where Self: 'd + 'b

Source

type Mod<'b>: Mod<'b, Ctx<'b> = Self::Ctx<'b>> where Self: 'b

Source

type Ty<'b>: Ty<'b> where Self: 'b

Source

type Ctx<'b>: Ctx<'b> where Self: 'b

Required Methods§

Source

fn new_in_ctx(ctx: Self::Ctx<'a>) -> Self

Source

fn continue<'b, 'c>(&'b self, bb: Self::BB<'c, '_, '_>)
where 'a: 'b + 'c,

Source

fn call<'b, 'c, 'd, 'e, 'f, 'h, 'i, 'g: 'a + 'b + 'c + 'd + 'e + 'f + 'h + 'i>( &'b self, resty: Self::Ty<'c>, fn: <Self::ValKind<'_, '_> as ValueKind>::Val<'d, Normal>, args: impl Iterator<Item = <Self::ValKind<'h, 'i> as ValueKind>::Val<'e, Normal>>, name: &'f CStr, ) -> <Self::ValKind<'_, '_> as ValueKind>::Val<'g, Normal>
where Self: 'h + 'i,

Provided Methods§

Source

fn Alloca<'b, 'ty, 'name, 'res: 'ty + 'name + 'b>( &'b self, ty: Self::Ty<'ty>, name: &'name CStr, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal>
where 'a: 'ty + 'name,

Source

fn Load2<'b, 'ty, 'ptr, 'name, 'res: 'ty + 'ptr + 'name + 'b>( &'b self, ty: Self::Ty<'ty>, pointer: <Self::ValKind<'a, 'a> as ValueKind>::Val<'ptr, Normal>, name: &'name CStr, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal>
where 'a: 'ty + 'ptr + 'name,

Source

fn Store<'b, 'val, 'ptr, 'res: 'val + 'ptr + 'b>( &'b self, value: <Self::ValKind<'a, 'a> as ValueKind>::Val<'val, Normal>, pointer: <Self::ValKind<'a, 'a> as ValueKind>::Val<'ptr, Normal>, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal>
where 'a: 'val + 'ptr,

Source

fn Add<'b, 'lhs, 'rhs, 'name, 'res: 'lhs + 'rhs + 'name + 'b>( &'b self, lhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'lhs, Normal>, rhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'rhs, Normal>, name: &'name CStr, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal>
where 'a: 'lhs + 'rhs + 'name,

Source

fn And<'b, 'lhs, 'rhs, 'name, 'res: 'lhs + 'rhs + 'name + 'b>( &'b self, lhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'lhs, Normal>, rhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'rhs, Normal>, name: &'name CStr, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal>
where 'a: 'lhs + 'rhs + 'name,

Source

fn Neg<'b, 'lhs, 'name, 'res: 'lhs + 'name + 'b>( &'b self, lhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'lhs, Normal>, name: &'name CStr, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal>
where 'a: 'lhs + 'name,

Source

fn Not<'b, 'lhs, 'name, 'res: 'lhs + 'name + 'b>( &'b self, lhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'lhs, Normal>, name: &'name CStr, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal>
where 'a: 'lhs + 'name,

Source

fn TruncOrBitCast<'b, 'lhs, 'ty, 'name, 'res: 'lhs + 'ty + 'name + 'b>( &'b self, lhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'lhs, Normal>, ty: Self::Ty<'ty>, name: &'name CStr, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal>
where 'a: 'lhs + 'ty + 'name,

Source

fn Mul<'b, 'lhs, 'rhs, 'name, 'res: 'lhs + 'rhs + 'name + 'b>( &'b self, lhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'lhs, Normal>, rhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'rhs, Normal>, name: &'name CStr, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal>
where 'a: 'lhs + 'rhs + 'name,

Source

fn Or<'b, 'lhs, 'rhs, 'name, 'res: 'lhs + 'rhs + 'name + 'b>( &'b self, lhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'lhs, Normal>, rhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'rhs, Normal>, name: &'name CStr, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal>
where 'a: 'lhs + 'rhs + 'name,

Source

fn Sub<'b, 'lhs, 'rhs, 'name, 'res: 'lhs + 'rhs + 'name + 'b>( &'b self, lhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'lhs, Normal>, rhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'rhs, Normal>, name: &'name CStr, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal>
where 'a: 'lhs + 'rhs + 'name,

Source

fn Xor<'b, 'lhs, 'rhs, 'name, 'res: 'lhs + 'rhs + 'name + 'b>( &'b self, lhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'lhs, Normal>, rhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'rhs, Normal>, name: &'name CStr, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal>
where 'a: 'lhs + 'rhs + 'name,

Source

fn ICmp<'b, 'op, 'lhs, 'rhs, 'name, 'res: 'op + 'lhs + 'rhs + 'name + 'b>( &'b self, op: ICmp, lhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'lhs, Normal>, rhs: <Self::ValKind<'a, 'a> as ValueKind>::Val<'rhs, Normal>, name: &'name CStr, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal>
where 'a: 'op + 'lhs + 'rhs + 'name,

Source

fn Br<'b, 'dest, 'res: 'dest + 'b>( &'b self, dest: Self::BB<'dest, 'a, 'a>, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal>
where 'a: 'dest,

Source

fn CondBr<'b, 'cond, 'then, 'e, 'res: 'cond + 'then + 'e + 'b>( &'b self, if: <Self::ValKind<'a, 'a> as ValueKind>::Val<'cond, Normal>, then: Self::BB<'then, 'a, 'a>, else: Self::BB<'e, 'a, 'a>, ) -> <Self::ValKind<'a, 'a> as ValueKind>::Val<'res, Normal>
where 'a: 'cond + 'then + 'e,

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.

Implementors§