Skip to main content

RangeBoundsSpecImpl

Trait RangeBoundsSpecImpl 

Source
pub trait RangeBoundsSpecImpl<T: ?Sized>: RangeBounds<T> {
    // Required methods
    exec fn spec_start_bound(&self) -> Bound<&T>;
    exec fn spec_end_bound(&self) -> Bound<&T>;
}

Required Methods§

Source

exec fn spec_start_bound(&self) -> Bound<&T>

Source

exec fn spec_end_bound(&self) -> Bound<&T>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<'a, T: ?Sized + 'a> RangeBoundsSpecImpl<T> for (Bound<&'a T>, Bound<&'a T>)

Source§

open spec fn spec_start_bound(&self) -> Bound<&T>

{ self.0 }
Source§

open spec fn spec_end_bound(&self) -> Bound<&T>

{ self.1 }
Source§

impl<T: ?Sized> RangeBoundsSpecImpl<T> for RangeFull

Source§

open spec fn spec_start_bound(&self) -> Bound<&T>

{ Bound::Unbounded }
Source§

open spec fn spec_end_bound(&self) -> Bound<&T>

{ Bound::Unbounded }
Source§

impl<T> RangeBoundsSpecImpl<T> for (Bound<T>, Bound<T>)

Source§

open spec fn spec_start_bound(&self) -> Bound<&T>

{ bound_as_ref(&self.0) }
Source§

open spec fn spec_end_bound(&self) -> Bound<&T>

{ bound_as_ref(&self.1) }
Source§

impl<T> RangeBoundsSpecImpl<T> for Range<&T>

Source§

open spec fn spec_start_bound(&self) -> Bound<&T>

{ Bound::Included(self.start) }
Source§

open spec fn spec_end_bound(&self) -> Bound<&T>

{ Bound::Excluded(self.end) }
Source§

impl<T> RangeBoundsSpecImpl<T> for Range<T>

Source§

open spec fn spec_start_bound(&self) -> Bound<&T>

{ Bound::Included(&self.start) }
Source§

open spec fn spec_end_bound(&self) -> Bound<&T>

{ Bound::Excluded(&self.end) }
Source§

impl<T> RangeBoundsSpecImpl<T> for RangeFrom<&T>

Source§

open spec fn spec_start_bound(&self) -> Bound<&T>

{ Bound::Included(self.start) }
Source§

open spec fn spec_end_bound(&self) -> Bound<&T>

{ Bound::Unbounded }
Source§

impl<T> RangeBoundsSpecImpl<T> for RangeFrom<T>

Source§

open spec fn spec_start_bound(&self) -> Bound<&T>

{ Bound::Included(&self.start) }
Source§

open spec fn spec_end_bound(&self) -> Bound<&T>

{ Bound::Unbounded }
Source§

impl<T> RangeBoundsSpecImpl<T> for RangeInclusive<&T>

Source§

open spec fn spec_start_bound(&self) -> Bound<&T>

{ Bound::Included(self@.start) }
Source§

open spec fn spec_end_bound(&self) -> Bound<&T>

{ Bound::Included(self@.end) }
Source§

impl<T> RangeBoundsSpecImpl<T> for RangeInclusive<T>

Source§

open spec fn spec_start_bound(&self) -> Bound<&T>

{ Bound::Included(&self@.start) }
Source§

open spec fn spec_end_bound(&self) -> Bound<&T>

{ spec_range_inclusive_end_bound(self) }
Source§

impl<T> RangeBoundsSpecImpl<T> for RangeTo<&T>

Source§

open spec fn spec_start_bound(&self) -> Bound<&T>

{ Bound::Unbounded }
Source§

open spec fn spec_end_bound(&self) -> Bound<&T>

{ Bound::Excluded(self.end) }
Source§

impl<T> RangeBoundsSpecImpl<T> for RangeTo<T>

Source§

open spec fn spec_start_bound(&self) -> Bound<&T>

{ Bound::Unbounded }
Source§

open spec fn spec_end_bound(&self) -> Bound<&T>

{ Bound::Excluded(&self.end) }
Source§

impl<T> RangeBoundsSpecImpl<T> for RangeToInclusive<&T>

Source§

open spec fn spec_start_bound(&self) -> Bound<&T>

{ Bound::Unbounded }
Source§

open spec fn spec_end_bound(&self) -> Bound<&T>

{ Bound::Included(self.end) }
Source§

impl<T> RangeBoundsSpecImpl<T> for RangeToInclusive<T>

Source§

open spec fn spec_start_bound(&self) -> Bound<&T>

{ Bound::Unbounded }
Source§

open spec fn spec_end_bound(&self) -> Bound<&T>

{ Bound::Included(&self.end) }

Implementors§