Trait frunk_core::labelled::IntoValueLabelled
source · pub trait IntoValueLabelled {
type Output;
// Required method
fn into_value_labelled(self) -> Self::Output;
}
Expand description
A trait that strips type-level strings from the labels
Required Associated Types§
Required Methods§
sourcefn into_value_labelled(self) -> Self::Output
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::*;
use frunk_core::{field, hlist, HList};
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,
},
]);