Trait ValueRef

Source
pub trait ValueRef<'sval>: Value {
    // Required method
    fn stream_ref<S: Stream<'sval> + ?Sized>(&self, stream: &mut S) -> Result;
}
Expand description

A producer of structured data that stores a reference internally.

This trait is a variant of Value for wrapper types that keep a reference to a value internally. In Value, the 'sval lifetime comes from the borrow of &'sval self. In ValueRef, it comes from the 'sval lifetime in the trait itself.

Required Methods§

Source

fn stream_ref<S: Stream<'sval> + ?Sized>(&self, stream: &mut S) -> Result

Stream this value through a Stream.

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<'sval, 'a, T: ValueRef<'sval> + ?Sized> ValueRef<'sval> for &'a T

Source§

fn stream_ref<S: Stream<'sval> + ?Sized>(&self, stream: &mut S) -> Result

Source§

impl<'sval, T0: ValueRef<'sval>> ValueRef<'sval> for (T0,)

Source§

fn stream_ref<S: Stream<'sval> + ?Sized>(&self, stream: &mut S) -> Result

Source§

impl<'sval, T0: ValueRef<'sval>, T1: ValueRef<'sval>> ValueRef<'sval> for (T0, T1)

Source§

fn stream_ref<S: Stream<'sval> + ?Sized>(&self, stream: &mut S) -> Result

Source§

impl<'sval, T0: ValueRef<'sval>, T1: ValueRef<'sval>, T2: ValueRef<'sval>> ValueRef<'sval> for (T0, T1, T2)

Source§

fn stream_ref<S: Stream<'sval> + ?Sized>(&self, stream: &mut S) -> Result

Source§

impl<'sval, T0: ValueRef<'sval>, T1: ValueRef<'sval>, T2: ValueRef<'sval>, T3: ValueRef<'sval>> ValueRef<'sval> for (T0, T1, T2, T3)

Source§

fn stream_ref<S: Stream<'sval> + ?Sized>(&self, stream: &mut S) -> Result

Source§

impl<'sval, T0: ValueRef<'sval>, T1: ValueRef<'sval>, T2: ValueRef<'sval>, T3: ValueRef<'sval>, T4: ValueRef<'sval>> ValueRef<'sval> for (T0, T1, T2, T3, T4)

Source§

fn stream_ref<S: Stream<'sval> + ?Sized>(&self, stream: &mut S) -> Result

Source§

impl<'sval, T0: ValueRef<'sval>, T1: ValueRef<'sval>, T2: ValueRef<'sval>, T3: ValueRef<'sval>, T4: ValueRef<'sval>, T5: ValueRef<'sval>> ValueRef<'sval> for (T0, T1, T2, T3, T4, T5)

Source§

fn stream_ref<S: Stream<'sval> + ?Sized>(&self, stream: &mut S) -> Result

Source§

impl<'sval, T0: ValueRef<'sval>, T1: ValueRef<'sval>, T2: ValueRef<'sval>, T3: ValueRef<'sval>, T4: ValueRef<'sval>, T5: ValueRef<'sval>, T6: ValueRef<'sval>> ValueRef<'sval> for (T0, T1, T2, T3, T4, T5, T6)

Source§

fn stream_ref<S: Stream<'sval> + ?Sized>(&self, stream: &mut S) -> Result

Source§

impl<'sval, T0: ValueRef<'sval>, T1: ValueRef<'sval>, T2: ValueRef<'sval>, T3: ValueRef<'sval>, T4: ValueRef<'sval>, T5: ValueRef<'sval>, T6: ValueRef<'sval>, T7: ValueRef<'sval>> ValueRef<'sval> for (T0, T1, T2, T3, T4, T5, T6, T7)

Source§

fn stream_ref<S: Stream<'sval> + ?Sized>(&self, stream: &mut S) -> Result

Source§

impl<'sval, T0: ValueRef<'sval>, T1: ValueRef<'sval>, T2: ValueRef<'sval>, T3: ValueRef<'sval>, T4: ValueRef<'sval>, T5: ValueRef<'sval>, T6: ValueRef<'sval>, T7: ValueRef<'sval>, T8: ValueRef<'sval>> ValueRef<'sval> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)

Source§

fn stream_ref<S: Stream<'sval> + ?Sized>(&self, stream: &mut S) -> Result

Source§

impl<'sval, T0: ValueRef<'sval>, T1: ValueRef<'sval>, T2: ValueRef<'sval>, T3: ValueRef<'sval>, T4: ValueRef<'sval>, T5: ValueRef<'sval>, T6: ValueRef<'sval>, T7: ValueRef<'sval>, T8: ValueRef<'sval>, T9: ValueRef<'sval>> ValueRef<'sval> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)

Source§

fn stream_ref<S: Stream<'sval> + ?Sized>(&self, stream: &mut S) -> Result

Source§

impl<'sval, T0: ValueRef<'sval>, T1: ValueRef<'sval>, T2: ValueRef<'sval>, T3: ValueRef<'sval>, T4: ValueRef<'sval>, T5: ValueRef<'sval>, T6: ValueRef<'sval>, T7: ValueRef<'sval>, T8: ValueRef<'sval>, T9: ValueRef<'sval>, T10: ValueRef<'sval>> ValueRef<'sval> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)

Source§

fn stream_ref<S: Stream<'sval> + ?Sized>(&self, stream: &mut S) -> Result

Source§

impl<'sval, T0: ValueRef<'sval>, T1: ValueRef<'sval>, T2: ValueRef<'sval>, T3: ValueRef<'sval>, T4: ValueRef<'sval>, T5: ValueRef<'sval>, T6: ValueRef<'sval>, T7: ValueRef<'sval>, T8: ValueRef<'sval>, T9: ValueRef<'sval>, T10: ValueRef<'sval>, T11: ValueRef<'sval>> ValueRef<'sval> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)

Source§

fn stream_ref<S: Stream<'sval> + ?Sized>(&self, stream: &mut S) -> Result

Source§

impl<'sval, T0: ValueRef<'sval>, T1: ValueRef<'sval>, T2: ValueRef<'sval>, T3: ValueRef<'sval>, T4: ValueRef<'sval>, T5: ValueRef<'sval>, T6: ValueRef<'sval>, T7: ValueRef<'sval>, T8: ValueRef<'sval>, T9: ValueRef<'sval>, T10: ValueRef<'sval>, T11: ValueRef<'sval>, T12: ValueRef<'sval>> ValueRef<'sval> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)

Source§

fn stream_ref<S: Stream<'sval> + ?Sized>(&self, stream: &mut S) -> Result

Source§

impl<'sval, T0: ValueRef<'sval>, T1: ValueRef<'sval>, T2: ValueRef<'sval>, T3: ValueRef<'sval>, T4: ValueRef<'sval>, T5: ValueRef<'sval>, T6: ValueRef<'sval>, T7: ValueRef<'sval>, T8: ValueRef<'sval>, T9: ValueRef<'sval>, T10: ValueRef<'sval>, T11: ValueRef<'sval>, T12: ValueRef<'sval>, T13: ValueRef<'sval>> ValueRef<'sval> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)

Source§

fn stream_ref<S: Stream<'sval> + ?Sized>(&self, stream: &mut S) -> Result

Source§

impl<'sval, T0: ValueRef<'sval>, T1: ValueRef<'sval>, T2: ValueRef<'sval>, T3: ValueRef<'sval>, T4: ValueRef<'sval>, T5: ValueRef<'sval>, T6: ValueRef<'sval>, T7: ValueRef<'sval>, T8: ValueRef<'sval>, T9: ValueRef<'sval>, T10: ValueRef<'sval>, T11: ValueRef<'sval>, T12: ValueRef<'sval>, T13: ValueRef<'sval>, T14: ValueRef<'sval>> ValueRef<'sval> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)

Source§

fn stream_ref<S: Stream<'sval> + ?Sized>(&self, stream: &mut S) -> Result

Source§

impl<'sval, T0: ValueRef<'sval>, T1: ValueRef<'sval>, T2: ValueRef<'sval>, T3: ValueRef<'sval>, T4: ValueRef<'sval>, T5: ValueRef<'sval>, T6: ValueRef<'sval>, T7: ValueRef<'sval>, T8: ValueRef<'sval>, T9: ValueRef<'sval>, T10: ValueRef<'sval>, T11: ValueRef<'sval>, T12: ValueRef<'sval>, T13: ValueRef<'sval>, T14: ValueRef<'sval>, T15: ValueRef<'sval>> ValueRef<'sval> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)

Source§

fn stream_ref<S: Stream<'sval> + ?Sized>(&self, stream: &mut S) -> Result

Source§

impl<'sval, T: ValueRef<'sval>> ValueRef<'sval> for [T]

Source§

fn stream_ref<S: Stream<'sval> + ?Sized>(&self, stream: &mut S) -> Result

Source§

impl<'sval, T: ValueRef<'sval>, const N: usize> ValueRef<'sval> for [T; N]

Source§

fn stream_ref<S: Stream<'sval> + ?Sized>(&self, stream: &mut S) -> Result

Implementors§

Source§

impl<'sval, V: Value + ?Sized> ValueRef<'sval> for Ref<&'sval V>