vstd::view

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

Source§

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

{ self.view() }
Source§

type V = Seq<char>

Source§

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

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, T: DeepView + Clone> DeepView for Cow<'a, [T]>

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>

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>

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>

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>

Source§

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

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

type V = <A 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, 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>

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§