Skip to main content

IntoEure

Trait IntoEure 

Source
pub trait IntoEure<T = Self>: Sized {
    // Required method
    fn write(value: T, c: &mut DocumentConstructor) -> Result<(), WriteError>;
}
Expand description

Trait for writing Rust types to Eure documents.

Types implementing this trait can be serialized into EureDocument via DocumentConstructor.

The generic parameter T defaults to Self, allowing remote type support via marker types:

  • IntoEure (same as IntoEure<Self>) - standard implementation
  • IntoEure<RemoteType> - marker type implements writing for a remote type

§Examples

Standard implementation:

impl IntoEure for User {
    fn write(value: User, c: &mut DocumentConstructor) -> Result<(), WriteError> {
        c.record(|rec| {
            rec.field("name", value.name)?;
            rec.field_optional("age", value.age)?;
            Ok(())
        })
    }
}

Remote type support via marker:

impl IntoEure<std::time::Duration> for DurationDef {
    fn write(value: std::time::Duration, c: &mut DocumentConstructor) -> Result<(), WriteError> {
        c.record(|rec| {
            rec.field("secs", value.as_secs())?;
            rec.field("nanos", value.subsec_nanos())?;
            Ok(())
        })
    }
}

Required Methods§

Source

fn write(value: T, c: &mut DocumentConstructor) -> Result<(), WriteError>

Write a value to the current node in the document constructor.

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 IntoEure for bool

Source§

impl IntoEure for f32

Source§

impl IntoEure for f64

Source§

impl IntoEure for i8

Source§

impl IntoEure for i16

Source§

impl IntoEure for i32

Source§

impl IntoEure for i64

Source§

impl IntoEure for isize

Source§

impl IntoEure for u8

Source§

impl IntoEure for u16

Source§

impl IntoEure for u32

Source§

impl IntoEure for u64

Source§

impl IntoEure for usize

Source§

impl IntoEure for String

Source§

impl IntoEure for BigInt

Source§

impl<'a> IntoEure for &'a str

Source§

impl<'a, T> IntoEure for Cow<'a, T>
where T: ToOwned + ?Sized, T::Owned: IntoEure,

Source§

fn write( value: Cow<'a, T>, c: &mut DocumentConstructor, ) -> Result<(), WriteError>

Source§

impl<M, T> IntoEure<Option<T>> for Option<M>
where M: IntoEure<T>,

Source§

impl<M, T> IntoEure<Vec<T>> for Vec<M>
where M: IntoEure<T>,

Source§

impl<M, T, const N: usize> IntoEure<[T; N]> for [M; N]
where M: IntoEure<T>,

Source§

impl<MA, A> IntoEure<(A,)> for (MA,)
where MA: IntoEure<A>,

Source§

impl<MA, A, MB, B> IntoEure<(A, B)> for (MA, MB)
where MA: IntoEure<A>, MB: IntoEure<B>,

Source§

impl<MA, A, MB, B, MC, C> IntoEure<(A, B, C)> for (MA, MB, MC)
where MA: IntoEure<A>, MB: IntoEure<B>, MC: IntoEure<C>,

Source§

impl<MA, A, MB, B, MC, C, MD, D> IntoEure<(A, B, C, D)> for (MA, MB, MC, MD)
where MA: IntoEure<A>, MB: IntoEure<B>, MC: IntoEure<C>, MD: IntoEure<D>,

Source§

impl<MA, A, MB, B, MC, C, MD, D, ME, E> IntoEure<(A, B, C, D, E)> for (MA, MB, MC, MD, ME)
where MA: IntoEure<A>, MB: IntoEure<B>, MC: IntoEure<C>, MD: IntoEure<D>, ME: IntoEure<E>,

Source§

impl<MA, A, MB, B, MC, C, MD, D, ME, E, MF, F> IntoEure<(A, B, C, D, E, F)> for (MA, MB, MC, MD, ME, MF)
where MA: IntoEure<A>, MB: IntoEure<B>, MC: IntoEure<C>, MD: IntoEure<D>, ME: IntoEure<E>, MF: IntoEure<F>,

Source§

impl<MA, A, MB, B, MC, C, MD, D, ME, E, MF, F, MG, G> IntoEure<(A, B, C, D, E, F, G)> for (MA, MB, MC, MD, ME, MF, MG)
where MA: IntoEure<A>, MB: IntoEure<B>, MC: IntoEure<C>, MD: IntoEure<D>, ME: IntoEure<E>, MF: IntoEure<F>, MG: IntoEure<G>,

Source§

impl<MA, A, MB, B, MC, C, MD, D, ME, E, MF, F, MG, G, MH, H> IntoEure<(A, B, C, D, E, F, G, H)> for (MA, MB, MC, MD, ME, MF, MG, MH)
where MA: IntoEure<A>, MB: IntoEure<B>, MC: IntoEure<C>, MD: IntoEure<D>, ME: IntoEure<E>, MF: IntoEure<F>, MG: IntoEure<G>, MH: IntoEure<H>,

Source§

impl<MA, A, MB, B, MC, C, MD, D, ME, E, MF, F, MG, G, MH, H, MI, I> IntoEure<(A, B, C, D, E, F, G, H, I)> for (MA, MB, MC, MD, ME, MF, MG, MH, MI)
where MA: IntoEure<A>, MB: IntoEure<B>, MC: IntoEure<C>, MD: IntoEure<D>, ME: IntoEure<E>, MF: IntoEure<F>, MG: IntoEure<G>, MH: IntoEure<H>, MI: IntoEure<I>,

Source§

impl<MA, A, MB, B, MC, C, MD, D, ME, E, MF, F, MG, G, MH, H, MI, I, MJ, J> IntoEure<(A, B, C, D, E, F, G, H, I, J)> for (MA, MB, MC, MD, ME, MF, MG, MH, MI, MJ)
where MA: IntoEure<A>, MB: IntoEure<B>, MC: IntoEure<C>, MD: IntoEure<D>, ME: IntoEure<E>, MF: IntoEure<F>, MG: IntoEure<G>, MH: IntoEure<H>, MI: IntoEure<I>, MJ: IntoEure<J>,

Source§

impl<MA, A, MB, B, MC, C, MD, D, ME, E, MF, F, MG, G, MH, H, MI, I, MJ, J, MK, K> IntoEure<(A, B, C, D, E, F, G, H, I, J, K)> for (MA, MB, MC, MD, ME, MF, MG, MH, MI, MJ, MK)
where MA: IntoEure<A>, MB: IntoEure<B>, MC: IntoEure<C>, MD: IntoEure<D>, ME: IntoEure<E>, MF: IntoEure<F>, MG: IntoEure<G>, MH: IntoEure<H>, MI: IntoEure<I>, MJ: IntoEure<J>, MK: IntoEure<K>,

Source§

impl<MA, A, MB, B, MC, C, MD, D, ME, E, MF, F, MG, G, MH, H, MI, I, MJ, J, MK, K, ML, L> IntoEure<(A, B, C, D, E, F, G, H, I, J, K, L)> for (MA, MB, MC, MD, ME, MF, MG, MH, MI, MJ, MK, ML)
where MA: IntoEure<A>, MB: IntoEure<B>, MC: IntoEure<C>, MD: IntoEure<D>, ME: IntoEure<E>, MF: IntoEure<F>, MG: IntoEure<G>, MH: IntoEure<H>, MI: IntoEure<I>, MJ: IntoEure<J>, MK: IntoEure<K>, ML: IntoEure<L>,

Source§

impl<MA, A, MB, B, MC, C, MD, D, ME, E, MF, F, MG, G, MH, H, MI, I, MJ, J, MK, K, ML, L, MM, M> IntoEure<(A, B, C, D, E, F, G, H, I, J, K, L, M)> for (MA, MB, MC, MD, ME, MF, MG, MH, MI, MJ, MK, ML, MM)
where MA: IntoEure<A>, MB: IntoEure<B>, MC: IntoEure<C>, MD: IntoEure<D>, ME: IntoEure<E>, MF: IntoEure<F>, MG: IntoEure<G>, MH: IntoEure<H>, MI: IntoEure<I>, MJ: IntoEure<J>, MK: IntoEure<K>, ML: IntoEure<L>, MM: IntoEure<M>,

Source§

impl<MA, A, MB, B, MC, C, MD, D, ME, E, MF, F, MG, G, MH, H, MI, I, MJ, J, MK, K, ML, L, MM, M, MN, N> IntoEure<(A, B, C, D, E, F, G, H, I, J, K, L, M, N)> for (MA, MB, MC, MD, ME, MF, MG, MH, MI, MJ, MK, ML, MM, MN)
where MA: IntoEure<A>, MB: IntoEure<B>, MC: IntoEure<C>, MD: IntoEure<D>, ME: IntoEure<E>, MF: IntoEure<F>, MG: IntoEure<G>, MH: IntoEure<H>, MI: IntoEure<I>, MJ: IntoEure<J>, MK: IntoEure<K>, ML: IntoEure<L>, MM: IntoEure<M>, MN: IntoEure<N>,

Source§

impl<MA, A, MB, B, MC, C, MD, D, ME, E, MF, F, MG, G, MH, H, MI, I, MJ, J, MK, K, ML, L, MM, M, MN, N, MO, O> IntoEure<(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)> for (MA, MB, MC, MD, ME, MF, MG, MH, MI, MJ, MK, ML, MM, MN, MO)
where MA: IntoEure<A>, MB: IntoEure<B>, MC: IntoEure<C>, MD: IntoEure<D>, ME: IntoEure<E>, MF: IntoEure<F>, MG: IntoEure<G>, MH: IntoEure<H>, MI: IntoEure<I>, MJ: IntoEure<J>, MK: IntoEure<K>, ML: IntoEure<L>, MM: IntoEure<M>, MN: IntoEure<N>, MO: IntoEure<O>,

Source§

impl<MA, A, MB, B, MC, C, MD, D, ME, E, MF, F, MG, G, MH, H, MI, I, MJ, J, MK, K, ML, L, MM, M, MN, N, MO, O, MP, P> IntoEure<(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)> for (MA, MB, MC, MD, ME, MF, MG, MH, MI, MJ, MK, ML, MM, MN, MO, MP)
where MA: IntoEure<A>, MB: IntoEure<B>, MC: IntoEure<C>, MD: IntoEure<D>, ME: IntoEure<E>, MF: IntoEure<F>, MG: IntoEure<G>, MH: IntoEure<H>, MI: IntoEure<I>, MJ: IntoEure<J>, MK: IntoEure<K>, ML: IntoEure<L>, MM: IntoEure<M>, MN: IntoEure<N>, MO: IntoEure<O>, MP: IntoEure<P>,

Implementors§

Source§

impl IntoEure for PrimitiveValue

Source§

impl IntoEure for Identifier

Source§

impl IntoEure for Text

Source§

impl<'a, T> IntoEure<Cow<'a, T>> for BorrowedCow
where T: ToOwned + ?Sized, T::Owned: IntoEure,

Source§

impl<M, K, V> IntoEure<Map<K, V>> for Map<K, M>
where M: IntoEure<V>, K: Into<ObjectKey>,