pub struct LeafProperty<'tcx> {
pub kind: PropertyKind,
pub args: Vec<PropertyArg<'tcx>>,
pub contract_kind: ContractKind,
pub null_guard: Option<PlaceKey>,
pub for_each: Option<ContractPlace<'tcx>>,
pub origin_name: Option<String>,
pub origin_args: Option<Vec<String>>,
pub origin_meaning: Option<String>,
}Fields§
§kind: PropertyKind§args: Vec<PropertyArg<'tcx>>§contract_kind: ContractKind§null_guard: Option<PlaceKey>When set, this property came from an any(Null(guard), ...) expansion
and is vacuously true when guard is null.
for_each: Option<ContractPlace<'tcx>>When set, this property must hold for every element of this
container (e.g. Owning(buckets.iter())). The target place
in args is already stripped of the IterElements projection
and refers to a single element slot.
origin_name: Option<String>When set, the display name of the compound def this property expanded
from (e.g. "Deref", "ValidPtr"), used for user-facing reports so a
macro-expanded contract keeps its original name.
origin_args: Option<Vec<String>>The full call-site arguments of the compound def (rendered as source
text), used to display name(args) as a single entry.
origin_meaning: Option<String>The human-readable meaning of the compound def, sourced from its ///
doc comment.
Trait Implementations§
Source§impl<'tcx> Clone for LeafProperty<'tcx>
impl<'tcx> Clone for LeafProperty<'tcx>
Source§fn clone(&self) -> LeafProperty<'tcx>
fn clone(&self) -> LeafProperty<'tcx>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl<'tcx> !RefUnwindSafe for LeafProperty<'tcx>
impl<'tcx> !UnwindSafe for LeafProperty<'tcx>
impl<'tcx> DynSend for LeafProperty<'tcx>
impl<'tcx> DynSync for LeafProperty<'tcx>
impl<'tcx> Freeze for LeafProperty<'tcx>
impl<'tcx> Send for LeafProperty<'tcx>
impl<'tcx> Sync for LeafProperty<'tcx>
impl<'tcx> Unpin for LeafProperty<'tcx>
impl<'tcx> UnsafeUnpin for LeafProperty<'tcx>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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