Trait frunk_core::labelled::IntoValueLabelled
[−]
[src]
pub trait IntoValueLabelled { type Output; fn into_value_labelled(self) -> Self::Output; }
A trait that strips type-level strings from the labels
Associated Types
type Output
Required Methods
fn into_value_labelled(self) -> Self::Output
Turns the current HList into a value-labelled one.
Effectively extracts the names and values held inside the individual Fields and puts them into ValueFields, which do not have type-level names.
Examples
use frunk::labelled::{ValueField, IntoValueLabelled}; use frunk::labelled::chars::*; let labelled_hlist = hlist![ field!((n, a, m, e), "joe"), field!((a, g, e), 3) ]; // Notice the lack of type-level names let value_labelled: Hlist![ValueField<&str>, ValueField<isize>] = labelled_hlist.into_value_labelled(); assert_eq!( value_labelled, hlist![ ValueField { name: "name", value: "joe", }, ValueField { name: "age", value: 3, }, ]);Run
Implementors
impl IntoValueLabelled for HNil type Output = HNil;
impl<Label, Value, Tail> IntoValueLabelled for HCons<Field<Label, Value>, Tail> where
Tail: IntoValueLabelled, type Output = HCons<ValueField<Value>, <Tail as IntoValueLabelled>::Output>;