DeepView

Trait DeepView 

Source
pub trait DeepView {
    type V;

    // Required method
    spec fn deep_view(&self) -> Self::V;
}

Required Associated Types§

Source

type V

Required Methods§

Source

spec fn deep_view(&self) -> Self::V

Implementations on Foreign Types§

Source§

impl DeepView for bool

Source§

impl DeepView for char

Source§

impl DeepView for i8

Source§

type V = i8

Source§

fn deep_view(&self) -> i8

Source§

impl DeepView for i16

Source§

type V = i16

Source§

fn deep_view(&self) -> i16

Source§

impl DeepView for i32

Source§

type V = i32

Source§

fn deep_view(&self) -> i32

Source§

impl DeepView for i64

Source§

type V = i64

Source§

fn deep_view(&self) -> i64

Source§

impl DeepView for i128

Source§

impl DeepView for isize

Source§

impl DeepView for str

Source§

open spec fn deep_view(&self) -> Seq<char>

{ self.view() }
Source§

type V = Seq<char>

Source§

impl DeepView for u8

Source§

type V = u8

Source§

fn deep_view(&self) -> u8

Source§

impl DeepView for u16

Source§

type V = u16

Source§

fn deep_view(&self) -> u16

Source§

impl DeepView for u32

Source§

type V = u32

Source§

fn deep_view(&self) -> u32

Source§

impl DeepView for u64

Source§

type V = u64

Source§

fn deep_view(&self) -> u64

Source§

impl DeepView for u128

Source§

impl DeepView for ()

Source§

impl DeepView for usize

Source§

impl DeepView for String

Available on crate feature alloc only.
Source§

open spec fn deep_view(&self) -> Seq<char>

{ self.view() }
Source§

type V = Seq<char>

Source§

impl<'a> DeepView for Cow<'a, str>

Available on crate feature alloc only.
Source§

open spec fn deep_view(&self) -> Self::V

{
    match self {
        Cow::Borrowed(borrowed) => borrowed.deep_view(),
        Cow::Owned(owned) => owned.deep_view(),
    }
}
Source§

type V = Seq<char>

Source§

impl<'a> DeepView for Chars<'a>

Available on crate feature alloc only.
Source§

open spec fn deep_view(&self) -> Self::V

{ self@ }
Source§

type V = <Chars<'a> as View>::V

Source§

impl<'a, T: DeepView + Clone> DeepView for Cow<'a, [T]>

Available on crate feature alloc only.
Source§

open spec fn deep_view(&self) -> Self::V

{
    match self {
        Cow::Borrowed(borrowed) => borrowed.deep_view(),
        Cow::Owned(owned) => owned.deep_view(),
    }
}
Source§

type V = Seq<<T as DeepView>::V>

Source§

impl<'a, T: DeepView + Clone> DeepView for Cow<'a, T>

Available on crate feature alloc only.
Source§

open spec fn deep_view(&self) -> Self::V

{
    match self {
        Cow::Borrowed(borrowed) => borrowed.deep_view(),
        Cow::Owned(owned) => owned.deep_view(),
    }
}
Source§

type V = <T as DeepView>::V

Source§

impl<A0: DeepView> DeepView for (A0,)

Source§

type V = (<A0 as DeepView>::V,)

Source§

fn deep_view(&self) -> (A0::V,)

Source§

impl<A0: DeepView, A1: DeepView> DeepView for (A0, A1)

Source§

type V = (<A0 as DeepView>::V, <A1 as DeepView>::V)

Source§

fn deep_view(&self) -> (A0::V, A1::V)

Source§

impl<A0: DeepView, A1: DeepView, A2: DeepView> DeepView for (A0, A1, A2)

Source§

type V = (<A0 as DeepView>::V, <A1 as DeepView>::V, <A2 as DeepView>::V)

Source§

fn deep_view(&self) -> (A0::V, A1::V, A2::V)

Source§

impl<A0: DeepView, A1: DeepView, A2: DeepView, A3: DeepView> DeepView for (A0, A1, A2, A3)

Source§

type V = (<A0 as DeepView>::V, <A1 as DeepView>::V, <A2 as DeepView>::V, <A3 as DeepView>::V)

Source§

fn deep_view(&self) -> (A0::V, A1::V, A2::V, A3::V)

Source§

impl<A: DeepView + ?Sized> DeepView for &A

Source§

open spec fn deep_view(&self) -> A::V

{ (**self).deep_view() }
Source§

type V = <A as DeepView>::V

Source§

impl<A: DeepView + ?Sized> DeepView for Box<A>

Available on crate feature alloc only.
Source§

open spec fn deep_view(&self) -> A::V

{ (**self).deep_view() }
Source§

type V = <A as DeepView>::V

Source§

impl<A: DeepView> DeepView for Rc<A>

Available on crate feature alloc only.
Source§

open spec fn deep_view(&self) -> A::V

{ (**self).deep_view() }
Source§

type V = <A as DeepView>::V

Source§

impl<A: DeepView> DeepView for Arc<A>

Available on crate feature alloc only.
Source§

open spec fn deep_view(&self) -> A::V

{ (**self).deep_view() }
Source§

type V = <A as DeepView>::V

Source§

impl<Key: DeepView, S> DeepView for HashSet<Key, S>

Source§

open spec fn deep_view(&self) -> Set<Key::V>

{ self@.map(|x: Key| x.deep_view()) }
Source§

type V = Set<<Key as DeepView>::V>

Source§

impl<Key: DeepView, Value: DeepView, S> DeepView for HashMap<Key, Value, S>

Source§

open spec fn deep_view(&self) -> Map<Key::V, Value::V>

{ hash_map_deep_view_impl(*self) }
Source§

type V = Map<<Key as DeepView>::V, <Value as DeepView>::V>

Source§

impl<T: DeepView> DeepView for Option<T>

Source§

open spec fn deep_view(&self) -> Option<T::V>

{
    match self {
        Some(t) => Some(t.deep_view()),
        None => None,
    }
}
Source§

type V = Option<<T as DeepView>::V>

Source§

impl<T: DeepView> DeepView for [T]

Source§

open spec fn deep_view(&self) -> Seq<T::V>

{
    let v = self.view();
    Seq::new(v.len(), |i: int| v[i].deep_view())
}
Source§

type V = Seq<<T as DeepView>::V>

Source§

impl<T: DeepView> DeepView for Iter<'_, T>

Source§

open spec fn deep_view(&self) -> Self::V

{
    let (i, v) = self@;
    (i, Seq::new(v.len(), |i: int| v[i].deep_view()))
}
Source§

type V = (int, Seq<<T as DeepView>::V>)

Source§

impl<T: DeepView, A: Allocator> DeepView for VecDeque<T, A>

Source§

open spec fn deep_view(&self) -> Seq<T::V>

{
    let v = self.view();
    Seq::new(v.len(), |i: int| v[i].deep_view())
}
Source§

type V = Seq<<T as DeepView>::V>

Source§

impl<T: DeepView, A: Allocator> DeepView for Vec<T, A>

Available on crate feature alloc and (verus_keep_ghost or crate feature allocator) only.
Source§

open spec fn deep_view(&self) -> Seq<T::V>

{
    let v = self.view();
    Seq::new(v.len(), |i: int| v[i].deep_view())
}
Source§

type V = Seq<<T as DeepView>::V>

Source§

impl<T: DeepView, const N: usize> DeepView for [T; N]

Source§

open spec fn deep_view(&self) -> Seq<T::V>

{
    let v = self.view();
    Seq::new(v.len(), |i: int| v[i].deep_view())
}
Source§

type V = Seq<<T as DeepView>::V>

Implementors§

Source§

impl<'a> DeepView for CharsGhostIterator<'a>

Available on crate feature alloc only.