Skip to main content

ToRef

Trait ToRef 

Source
pub trait ToRef<T: Sized + DeepView>: Sized + DeepView<V = T::V> {
    // Required method
    exec fn get_ref(self) -> res : T;
}
Expand description

ToRef and ToOwned are almost the same trait but separated to avoid type inference ambiguities.

Required Methods§

Source

exec fn get_ref(self) -> res : T

ensures
res.deep_view() == self.deep_view(),

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, K: DeepView + DeepViewClone + Hash + Eq, V: DeepView + DeepViewClone> ToRef<&'a HashMap<K, V>> for &'a HashMap<K, V>

Impls for shared traits

Source§

exec fn get_ref(self) -> &'a HashMap<K, V>

Source§

impl<'a, K: DeepView + DeepViewClone + Hash + Eq> ToRef<&'a HashSet<K>> for &'a HashSet<K>

Impls for shared traits

Source§

exec fn get_ref(self) -> &'a HashSet<K>

Source§

impl<'a, T0: Sized + DeepView, T1: Sized + DeepView, T2: Sized + DeepView, T3: Sized + DeepView> ToRef<&'a (T0, T1, T2, T3)> for &'a (T0, T1, T2, T3)

Source§

exec fn get_ref(self) -> &'a (T0, T1, T2, T3)

Source§

impl<'a, T0: Sized + DeepView, T1: Sized + DeepView, T2: Sized + DeepView> ToRef<&'a (T0, T1, T2)> for &'a (T0, T1, T2)

Source§

exec fn get_ref(self) -> &'a (T0, T1, T2)

Source§

impl<'a, T0: Sized + DeepView, T1: Sized + DeepView> ToRef<&'a (T0, T1)> for &'a (T0, T1)

Source§

exec fn get_ref(self) -> &'a (T0, T1)

Source§

impl<'a, T0: Sized + DeepView> ToRef<&'a (T0,)> for &'a (T0,)

Source§

exec fn get_ref(self) -> &'a (T0,)

Source§

impl<'a, T: DeepView> ToRef<&'a [T]> for &'a Vec<T>

Impls for shared traits NOTE: can’t implement ExecSpecType for Seq<T> since it conflicts with SpecString (i.e., Seq<char>).

Source§

exec fn get_ref(self) -> &'a [T]

Source§

impl<'a, T: Sized + DeepView> ToRef<&'a Option<T>> for &'a Option<T>

Impls for shared traits

Source§

exec fn get_ref(self) -> &'a Option<T>

Source§

impl<'a> ToRef<&'a str> for &'a String

Source§

exec fn get_ref(self) -> &'a str

Source§

impl<'a> ToRef<bool> for &'a bool

Source§

exec fn get_ref(self) -> bool

Source§

impl<'a> ToRef<char> for &'a char

Source§

exec fn get_ref(self) -> char

Source§

impl<'a> ToRef<i8> for &'a i8

Source§

exec fn get_ref(self) -> i8

Source§

impl<'a> ToRef<i16> for &'a i16

Source§

exec fn get_ref(self) -> i16

Source§

impl<'a> ToRef<i32> for &'a i32

Source§

exec fn get_ref(self) -> i32

Source§

impl<'a> ToRef<i64> for &'a i64

Source§

exec fn get_ref(self) -> i64

Source§

impl<'a> ToRef<i128> for &'a i128

Source§

exec fn get_ref(self) -> i128

Source§

impl<'a> ToRef<isize> for &'a isize

Source§

exec fn get_ref(self) -> isize

Source§

impl<'a> ToRef<u8> for &'a u8

Source§

exec fn get_ref(self) -> u8

Source§

impl<'a> ToRef<u16> for &'a u16

Source§

exec fn get_ref(self) -> u16

Source§

impl<'a> ToRef<u32> for &'a u32

Source§

exec fn get_ref(self) -> u32

Source§

impl<'a> ToRef<u64> for &'a u64

Source§

exec fn get_ref(self) -> u64

Source§

impl<'a> ToRef<u128> for &'a u128

Source§

exec fn get_ref(self) -> u128

Source§

impl<'a> ToRef<usize> for &'a usize

Source§

exec fn get_ref(self) -> usize

Implementors§

Source§

impl<'a, T: DeepView + DeepViewClone + Hash + Eq> ToRef<&'a ExecMultiset<T>> for &'a ExecMultiset<T>