MCPcopy Create free account
hub / github.com/apache/fory / gen_read_variant_fields

Function gen_read_variant_fields

rust/fory-derive/src/object/derive_enum.rs:118–139  ·  view source on GitHub ↗
(source_fields: &[SourceField<'_>])

Source from the content-addressed store, hash-verified

116}
117
118fn gen_read_variant_fields(source_fields: &[SourceField<'_>]) -> (Vec<TokenStream>, Vec<Ident>) {
119 match build_bindings(source_fields) {
120 Ok(bindings) => {
121 let read_fields = bindings
122 .iter()
123 .map(|binding| match binding {
124 FieldBinding::Codec(binding) => binding.read_field(),
125 FieldBinding::Skipped(binding) => binding.read_default(),
126 })
127 .collect();
128 let private_idents = bindings
129 .iter()
130 .map(|binding| match binding {
131 FieldBinding::Codec(binding) => binding.private_ident.clone(),
132 FieldBinding::Skipped(binding) => binding.private_ident.clone(),
133 })
134 .collect();
135 (read_fields, private_idents)
136 }
137 Err(err) => (vec![err.to_compile_error()], Vec::new()),
138 }
139}
140
141fn gen_read_variant_elements(
142 source_fields: &[SourceField<'_>],

Callers 1

Calls 5

build_bindingsFunction · 0.85
read_defaultMethod · 0.80
mapMethod · 0.45
read_fieldMethod · 0.45
cloneMethod · 0.45

Tested by

no test coverage detected