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", so this trait is not object safe.

Implementations on Foreign Types§

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

Source§

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

TODO: generalize to more tuple types

Source§

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

Source§

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

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>

Source§

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

Implementors§