Enum valuable::Fields [−][src]
pub enum Fields<'a> {
Named(&'a [NamedField<'a>]),
Unnamed(usize),
}
Expand description
Data stored within a Structable
or an Enumerable
.
Variants
Named(&'a [NamedField<'a>])
Tuple Fields
0: &'a [NamedField<'a>]
Named fields
Unnamed(usize)
Tuple Fields
0: usize
Unnamed (positional) fields or unit
The usize
value represents the number of fields.
Implementations
Returns true
if the fields are named.
Examples
Named fields
use valuable::Fields;
let fields = Fields::Named(&[]);
assert!(fields.is_named());
Unnamed fields
use valuable::Fields;
let fields = Fields::Unnamed(2);
assert!(!fields.is_named());
Returns true
if the fields are unnamed.
Examples
Named fields
use valuable::Fields;
let fields = Fields::Named(&[]);
assert!(!fields.is_unnamed());
Unnamed fields
use valuable::Fields;
let fields = Fields::Unnamed(3);
assert!(fields.is_unnamed());
Returns the number of fields.
Examples
Named fields
use valuable::{Fields, NamedField};
let fields = &[
NamedField::new("alice"),
NamedField::new("bob"),
];
let fields = Fields::Named(fields);
assert_eq!(fields.len(), 2);
Unnamed fields
use valuable::Fields;
let fields = Fields::Unnamed(2);
assert_eq!(fields.len(), 2);
Returns true
if this set of fields defines no fields.
Examples
Named fields
use valuable::{Fields, NamedField};
let fields = &[
NamedField::new("alice"),
NamedField::new("bob"),
];
let non_empty = Fields::Named(fields);
let empty = Fields::Named(&[]);
assert!(!non_empty.is_empty());
assert!(empty.is_empty());
Unnamed fields
use valuable::Fields;
let non_empty = Fields::Unnamed(2);
let empty = Fields::Unnamed(0);
assert!(!non_empty.is_empty());
assert!(empty.is_empty());