+fn encode_struct_field_attrs(ebml_w: &mut Encoder, krate: &Crate) {
+ struct StructFieldVisitor<'a, 'b> {
+ ebml_w: &'a mut Encoder<'b>,
+ }
+
+ impl<'a, 'b> Visitor<()> for StructFieldVisitor<'a, 'b> {
+ fn visit_struct_field(&mut self, field: &ast::StructField, _: ()) {
+ self.ebml_w.start_tag(tag_struct_field);
+ self.ebml_w.wr_tagged_u32(tag_struct_field_id, field.node.id);
+ encode_attributes(self.ebml_w, field.node.attrs.as_slice());
+ self.ebml_w.end_tag();
+ }
+ }
+
+ ebml_w.start_tag(tag_struct_fields);
+ visit::walk_crate(&mut StructFieldVisitor {
+ ebml_w: ebml_w
+ }, krate, ());
+ ebml_w.end_tag();
+}
+
+
+