Lines Matching refs:cont

14     let cont = match Container::from_ast(&ctxt, input, Derive::Serialize) {
15 Some(cont) => cont,
18 precondition(&ctxt, &cont);
21 let ident = &cont.ident;
22 let params = Parameters::new(&cont);
24 let body = Stmts(serialize_body(&cont, &params));
25 let serde = cont.attrs.serde_path();
27 let impl_block = if let Some(remote) = cont.attrs.remote() {
29 let used = pretend::pretend_used(&cont, params.is_packed);
56 cont.attrs.custom_serde_path(),
61 fn precondition(cx: &Ctxt, cont: &Container) {
62 match cont.attrs.identifier() {
65 cx.error_spanned_by(cont.original, "field identifiers cannot be serialized");
68 cx.error_spanned_by(cont.original, "variant identifiers cannot be serialized");
98 fn new(cont: &Container) -> Self {
99 let is_remote = cont.attrs.remote().is_some();
106 let this_type = this::this_type(cont);
107 let this_value = this::this_value(cont);
108 let is_packed = cont.attrs.is_packed();
109 let generics = build_generics(cont);
130 fn build_generics(cont: &Container) -> syn::Generics {
131 let generics = bound::without_defaults(cont.generics);
134 bound::with_where_predicates_from_fields(cont, &generics, attr::Field::ser_bound);
137 bound::with_where_predicates_from_variants(cont, &generics, attr::Variant::ser_bound);
139 match cont.attrs.ser_bound() {
142 cont,
166 fn serialize_body(cont: &Container, params: &Parameters) -> Fragment {
167 if cont.attrs.transparent() {
168 serialize_transparent(cont, params)
169 } else if let Some(type_into) = cont.attrs.type_into() {
172 match &cont.data {
173 Data::Enum(variants) => serialize_enum(params, variants, &cont.attrs),
174 Data::Struct(Style::Struct, fields) => serialize_struct(params, fields, &cont.attrs),
176 serialize_tuple_struct(params, fields, &cont.attrs)
179 serialize_newtype_struct(params, &fields[0], &cont.attrs)
181 Data::Struct(Style::Unit, _) => serialize_unit_struct(&cont.attrs),
186 fn serialize_transparent(cont: &Container, params: &Parameters) -> Fragment {
187 let fields = match &cont.data {