Skip to main content

If

Struct If 

Source
pub struct If { /* private fields */ }
Expand description

If is a structured control flow operation representing conditional execution.

An If takes a single condition as an argument, which chooses between one of its two regions based on the condition. If the condition is true, then the then_body region is executed, otherwise else_body.

Neither region allows any arguments, and both regions must be terminated with one of:

Implementations§

Source§

impl If

Construction

Source

pub fn create<B: ?Sized + Builder>( builder: &mut B, span: SourceSpan, condition: ValueRef, ) -> Result<UnsafeIntrusiveEntityRef<Self>, Report>

Manually construct a new If

It is generally preferable to use ::midenc_hir::BuilderExt::create instead.

Source

pub fn alloc_default(context: Rc<Context>) -> UnsafeIntrusiveEntityRef<Self>

Allocate a new, default-initialized If

This method is used as part of op definition implementation, and should not be used directly if at all possible.

Source§

impl If

This impl block contains no public items.

User-defined Fields

Source§

impl If

This impl block contains no public items.

Attributes

Source§

impl If

This impl block contains no public items.

Symbols

Source§

impl If

Operands

Source

pub fn condition(&self) -> EntityRef<'_, OpOperandImpl>

Get a reference to the condition operand.

Source

pub fn condition_mut(&mut self) -> EntityMut<'_, OpOperandImpl>

Get a mutable reference to the condition operand.

Source§

impl If

Results

Source

pub fn returns(&self) -> OpResultRange<'_>

Get a reference to the returns result group.

Source

pub fn returns_mut(&mut self) -> OpResultRangeMut<'_>

Get a mutable reference to the returns result group.

Source§

impl If

Regions

Source

pub fn then_body(&self) -> EntityRef<'_, Region>

Get a reference to the then_body region.

Source

pub fn then_body_mut(&mut self) -> EntityMut<'_, Region>

Get a mutable reference to the then_body region.

Source

pub fn else_body(&self) -> EntityRef<'_, Region>

Get a reference to the else_body region.

Source

pub fn else_body_mut(&mut self) -> EntityMut<'_, Region>

Get a mutable reference to the else_body region.

Source§

impl If

This impl block contains no public items.

Successors

Source§

impl If

Trait Implementations§

Source§

impl AsMut<Operation> for If

Source§

fn as_mut(&mut self) -> &mut Operation

Converts this type into a mutable reference of the (usually inferred) input type.
Source§

impl AsRef<Operation> for If

Source§

fn as_ref(&self) -> &Operation

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl BuildableOp<(RawEntityRef<dyn Value<Id = ValueId, Use = OpOperandImpl>>,)> for If

Source§

type Builder<'a, T: ?Sized + Builder + 'a> = IfBuilder<'a, T>

Source§

fn builder<'b, B>(builder: &'b mut B, span: SourceSpan) -> Self::Builder<'b, B>
where B: ?Sized + Builder + 'b,

Source§

impl Canonicalizable for If

Source§

fn get_canonicalization_patterns( rewrites: &mut RewritePatternSet, context: Rc<Context>, )

Populate rewrites with the set of rewrite patterns that should be applied to canonicalize this operation. Read more
Source§

impl HasRecursiveMemoryEffects for If

Source§

impl NoRegionArguments for If

Source§

impl Op for If

Source§

fn name(&self) -> OperationName

The name of this operation’s opcode Read more
Source§

fn as_operation(&self) -> &Operation

Source§

fn as_operation_mut(&mut self) -> &mut Operation

Source§

fn print(&self, flags: &OpPrintingFlags) -> Document

Source§

fn as_operation_ref(&self) -> RawEntityRef<Operation, IntrusiveLink>

Source§

fn set_span(&mut self, span: SourceSpan)

Source§

fn parent(&self) -> Option<RawEntityRef<Block, IntrusiveLink>>

Source§

fn parent_region(&self) -> Option<RawEntityRef<Region, IntrusiveLink>>

Source§

fn parent_op(&self) -> Option<RawEntityRef<Operation, IntrusiveLink>>

Source§

fn num_regions(&self) -> usize

Source§

fn regions(&self) -> &EntityList<Region>

Source§

fn regions_mut(&mut self) -> &mut EntityList<Region>

Source§

fn region(&self, index: usize) -> EntityRef<'_, Region>

Source§

fn region_mut(&mut self, index: usize) -> EntityMut<'_, Region>

Source§

fn has_successors(&self) -> bool

Source§

fn num_successors(&self) -> usize

Source§

fn has_operands(&self) -> bool

Source§

fn num_operands(&self) -> usize

Source§

fn operands(&self) -> &EntityStorage<RawEntityRef<OpOperandImpl, IntrusiveLink>>

Source§

fn operands_mut( &mut self, ) -> &mut EntityStorage<RawEntityRef<OpOperandImpl, IntrusiveLink>>

Source§

fn has_results(&self) -> bool

Source§

fn num_results(&self) -> usize

Source§

fn results(&self) -> &EntityStorage<RawEntityRef<OpResult>>

Source§

fn results_mut(&mut self) -> &mut EntityStorage<RawEntityRef<OpResult>>

Source§

fn successors(&self) -> &EntityStorage<SuccessorInfo, 0>

Source§

fn successors_mut(&mut self) -> &mut EntityStorage<SuccessorInfo, 0>

Source§

impl OpParser for If

Source§

fn parse( state: &mut OperationState, parser: &mut dyn OpAsmParser<'_>, ) -> ParseResult

Parse the current operation into state using parser. Read more
Source§

impl OpPrinter for If

Source§

fn print(&self, printer: &mut AsmPrinter<'_>)

Prints this operation with the given flags
Source§

impl OpRegistration for If

Source§

type Dialect = ScfDialect

Source§

fn name() -> Symbol

The name of the operation (i.e. its opcode)
Source§

fn attrs() -> Box<[AttrInfo]>

The set of statically known attributes for this op
Source§

fn traits() -> Box<[TraitInfo]>

The set of statically known traits for this op
Source§

fn alloc_uninit(context: Rc<Context>) -> OperationRef

Allocate a new, default-initialized instance of this op in context
Source§

fn dialect_name() -> Symbol

The name of the dialect this op is declared part of
Source§

fn full_name() -> Symbol

The fully-qualified name of the operation (i.e. <dialect>.<opcode>)
Source§

impl OpVerifier for If

Generated verifier implementation via #[operation] attribute

Traits verified by this implementation:

  • SingleBlock
  • NoRegionArguments
  • HasRecursiveMemoryEffects
  • RegionBranchOpInterface
  • OpPrinter

Use cargo-expand to view the generated code if you suspect verification is broken.

Source§

fn verify(&self, context: &Context) -> Result<(), Report>

Source§

impl RegionBranchOpInterface for If

Source§

fn get_entry_successor_regions( &self, operands: &[Option<AttributeRef>], ) -> RegionSuccessorIter<'_>

Returns the potential region successors when first executing the op. Read more
Source§

fn get_successor_regions( &self, point: RegionBranchPoint, ) -> RegionSuccessorIter<'_>

Returns the potential region successors when branching from point. Read more
Source§

fn get_region_invocation_bounds( &self, operands: &[Option<AttributeRef>], ) -> SmallVec<[InvocationBounds; 1]>

Returns a set of invocation bounds, representing the minimum and maximum number of times this operation will invoke each attached region (assuming the regions yield normally, i.e. do not abort or invoke an infinite loop). The minimum number of invocations is at least 0. If the maximum number of invocations cannot be statically determined, then it will be set to InvocationBounds::Unknown. Read more
Source§

fn is_repetitive_region(&self, _index: usize) -> bool

Returns true if control flow originating from the region at index may eventually branch back to the same region, either from itself, or after passing through other regions first.
Source§

fn has_loop(&self) -> bool

Returns true if there is a loop in the region branching graph. Read more
Source§

fn get_entry_successor_operands( &self, point: RegionBranchPoint, ) -> SuccessorOperandRange<'_>

Returns the operands of this operation that are forwarded to the region successor’s block arguments or this operation’s results when branching to point. point is guaranteed to be among the successors that are returned by get_entry_succcessor_regions or get_successor_regions(parent_op()). Read more
Source§

fn are_types_compatible(&self, lhs: &Type, rhs: &Type) -> bool

This function is called to compare types along control-flow edges. Read more
Source§

impl SingleBlock for If

Source§

impl Spanned for If

Auto Trait Implementations§

§

impl !Freeze for If

§

impl !RefUnwindSafe for If

§

impl !Send for If

§

impl !Sync for If

§

impl !UnwindSafe for If

§

impl Unpin for If

§

impl UnsafeUnpin for If

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> AsAny for T
where T: Any + 'static,

Source§

default fn type_name(&self) -> &'static str

Source§

default fn as_any(&self) -> &(dyn Any + 'static)

Source§

default fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Source§

default fn into_any(self: Box<T>) -> Box<dyn Any>

Source§

default fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

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> Canonicalizable for T
where T: Op,

Source§

default fn get_canonicalization_patterns( _rewrites: &mut RewritePatternSet, _context: Rc<Context>, )

Populate rewrites with the set of rewrite patterns that should be applied to canonicalize this operation. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> Conv for T

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<From, To, Obj> Downcast<To, Obj> for From
where From: DowncastRef<To> + Is<Obj> + ?Sized, To: DowncastFrom<From, Obj> + ?Sized, Obj: ?Sized,

Source§

fn downcast(self: Box<From>) -> Result<Box<To>, Box<Obj>>

Source§

impl<From, To, Obj> DowncastFrom<From, Obj> for To
where From: Is<Obj> + AsAny + 'static + ?Sized, To: DowncastFromRef<From> + 'static, Obj: ?Sized,

Source§

fn downcast_from(from: Box<From>) -> Result<Box<To>, Box<Obj>>

Source§

impl<From, To> DowncastFromRef<From> for To
where From: AsAny + ?Sized, To: Is<From> + 'static,

Source§

impl<From, To> DowncastRef<To> for From
where To: DowncastFromRef<From> + ?Sized, From: ?Sized,

Source§

impl<T> FmtForward for T

Source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> HasRecursiveEffects<MemoryEffect> for T

Source§

impl<T, Trait> HasVerifier<Trait> for T
where T: Verify<Trait>, Trait: ?Sized,

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<Trait, T> Is<Trait> for T
where T: Unsize<Trait> + ?Sized, Trait: ?Sized,

Source§

impl<T, Trait> IsObjOf<T> for Trait
where T: Is<Trait> + ?Sized, Trait: ?Sized,

Source§

impl<T> OpExt for T
where T: Op + ?Sized,

Source§

fn get_attribute( &self, name: impl Into<Symbol>, ) -> Option<RawEntityRef<dyn Attribute, IntrusiveLink>>

Return the attribute named name for this operation
Source§

fn has_attribute(&self, name: impl Into<Symbol>) -> bool

Return true if this function has an attribute named name
Source§

fn set_attribute( &mut self, name: impl Into<Symbol>, value: RawEntityRef<dyn Attribute, IntrusiveLink>, )

Set the attribute name with value for this operation.
Source§

fn remove_attribute(&mut self, name: impl Into<Symbol>)

Remove any attribute with the given name from this function
Source§

fn nearest_parent_op<U>(&self) -> Option<RawEntityRef<U, IntrusiveLink>>
where U: Op,

Returns a handle to the nearest containing Operation of type T for this operation, if it is attached to one
Source§

impl<D> OwoColorize for D

Source§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
Source§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
Source§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
Source§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
Source§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
Source§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
Source§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
Source§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
Source§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
Source§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
Source§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
Source§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
Source§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
Source§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
Source§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
Source§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
Source§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
Source§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
Source§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
Source§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
Source§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
Source§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
Source§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
Source§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
Source§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
Source§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
Source§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
Source§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
Source§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
Source§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
Source§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
Source§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
Source§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
Source§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
Source§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
Source§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
Source§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
Source§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
Source§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
Source§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
Source§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
Source§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
Source§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
Source§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
Source§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
Source§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
Source§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
Source§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green, Read more
Source§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow, Read more
Source§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
Source§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
Source§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
Source§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
Source§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
Source§

impl<T> PassTarget for T
where T: 'static,

Source§

default fn target_name(_context: &Context) -> Option<OperationName>

Source§

default fn into_target( op: &RawEntityRef<Operation, IntrusiveLink>, ) -> EntityRef<'_, T>

Source§

default fn into_target_mut( op: &mut RawEntityRef<Operation, IntrusiveLink>, ) -> EntityMut<'_, T>

Source§

impl<T> Pipe for T
where T: ?Sized,

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
Source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
Source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> Tap for T

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
Source§

impl<T> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. 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.
Source§

impl<From, To, Obj> TryUpcast<To, Obj> for From
where From: Is<Obj> + Upcast<To> + ?Sized, To: ?Sized, Obj: ?Sized,

Source§

fn try_upcast(self: Box<From>) -> Result<Box<To>, Box<Obj>>

Source§

impl<From, To, Obj> TryUpcastFrom<From, Obj> for To
where From: TryUpcast<To, Obj> + ?Sized, To: ?Sized, Obj: ?Sized,

Source§

fn try_upcast_from(from: Box<From>) -> Result<Box<To>, Box<Obj>>

Source§

impl<From, To> TryUpcastFromRef<From> for To
where From: TryUpcastRef<To> + ?Sized, To: ?Sized,

Source§

impl<From, To> TryUpcastRef<To> for From
where From: Upcast<To> + ?Sized, To: ?Sized,

Source§

impl<From, To> Upcast<To> for From
where From: Is<To> + ?Sized, To: ?Sized,

Source§

fn upcast_ref(&self) -> &To

Source§

fn upcast_mut(&mut self) -> &mut To

Source§

fn upcast(self: Box<From>) -> Box<To>

Source§

impl<From, To> UpcastFrom<From> for To
where From: Upcast<To> + ?Sized, To: ?Sized,

Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T, Trait> Verifier<Trait> for T
where Trait: ?Sized,

Source§

const VACUOUS: bool = true

An implementation of Verifier sets this flag to true when its implementation is vacuous, i.e. it always succeeds and is not dependent on runtime context. Read more
Source§

default fn should_verify(&self, _context: &Context) -> bool

Checks if this verifier is applicable for the current item
Source§

default fn maybe_verify(&self, _context: &Context) -> Result<(), Report>

Applies the verifier for this item, if Verifier::should_verify returns true
Source§

default fn verify(&self, _context: &Context) -> Result<(), Report>

Applies the verifier for this item
Source§

impl<T, Trait> Verifier<Trait> for T
where T: HasVerifier<Trait>, Trait: ?Sized,

Source§

const VACUOUS: bool = false

An implementation of Verifier sets this flag to true when its implementation is vacuous, i.e. it always succeeds and is not dependent on runtime context. Read more
Source§

fn should_verify(&self, context: &Context) -> bool

Checks if this verifier is applicable for the current item
Source§

fn maybe_verify(&self, context: &Context) -> Result<(), Report>

Applies the verifier for this item, if Verifier::should_verify returns true
Source§

fn verify(&self, context: &Context) -> Result<(), Report>

Applies the verifier for this item
Source§

impl<TOp> Verify<dyn NoRegionArguments> for TOp
where TOp: Op + NoRegionArguments,

Source§

fn verify(&self, context: &Context) -> Result<(), Report>

Apply this verifier to the current item.
Source§

fn should_verify(&self, context: &Context) -> bool

In cases where verification may be disabled via runtime configuration, or based on dynamic properties of the type, this method can be overridden and used to signal to the verification driver that verification should be skipped on this item.
Source§

fn maybe_verify(&self, context: &Context) -> Result<(), Report>

Apply this verifier, but only if Verify::should_verify returns true.
Source§

impl<TOp> Verify<dyn SingleBlock> for TOp
where TOp: Op + SingleBlock,

Source§

fn verify(&self, context: &Context) -> Result<(), Report>

Apply this verifier to the current item.
Source§

fn should_verify(&self, context: &Context) -> bool

In cases where verification may be disabled via runtime configuration, or based on dynamic properties of the type, this method can be overridden and used to signal to the verification driver that verification should be skipped on this item.
Source§

fn maybe_verify(&self, context: &Context) -> Result<(), Report>

Apply this verifier, but only if Verify::should_verify returns true.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more