MCPcopy Create free account
hub / github.com/csskit/csskit / views

Method views

crates/csskit_derives/src/field_view.rs:25–42  ·  view source on GitHub ↗
(&self)

Source from the content-addressed store, hash-verified

23
24impl FieldsExt for Fields {
25 fn views(&self) -> Vec<FieldView<'_>> {
26 self.iter()
27 .enumerate()
28 .map(|(i, field)| {
29 let binding = field.ident.clone().unwrap_or_else(|| format_ident!("v{}", i));
30 let member: Member = match &field.ident {
31 Some(name) => Member::Named(name.clone()),
32 None => Member::Unnamed(Index { index: i as u32, span: Span::call_site() }),
33 };
34 let ty: &Type = match &field.ty {
35 Type::Reference(r) => r.elem.as_ref(),
36 t => t,
37 };
38 let is_option = option_inner(ty).is_some();
39 FieldView { binding, member, ty, is_option }
40 })
41 .collect()
42 }
43}
44
45/// If `ty` is `Option<T>`, return `Some(&T)`. Otherwise `None`.

Callers 4

deriveFunction · 0.80
from_fieldsMethod · 0.80
deriveFunction · 0.80
make_bodyFunction · 0.80

Calls 6

NamedEnum · 0.85
option_innerFunction · 0.85
collectMethod · 0.80
iterMethod · 0.80
cloneMethod · 0.80
as_refMethod · 0.80

Tested by

no test coverage detected