From d32efefb7abcbc356eee84342eb11ca8240acda6 Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Thu, 15 Nov 2018 15:16:45 -0800 Subject: macros: Format code inside of quote! invocations Rustfmt currently does not touch the content of macro invocations. Also it used to have a bug where if it changed indentation of a block of code containing a multi-line macro invocation then the macro input would not get correspondingly indented. That bug was visible across some of the code here. For example: // rustfmt decides to un-indent the surrounding block: let data_size_in_bytes = quote!( ( #( #field_types::FIELD_WIDTH as usize )+* ) / 8 ); // poorly formatted resulting code: let data_size_in_bytes = quote!( ( #( #field_types::FIELD_WIDTH as usize )+* ) / 8 ); // should have been: let data_size_in_bytes = quote!( ( #( #field_types::FIELD_WIDTH as usize )+* ) / 8 ); TEST=cargo check crosvm TEST=cargo test each of the three proc-macro crates CQ-DEPEND=CL:1338507 Change-Id: Id2d456a8d85d719fbc0a65624f153f0f9df6f500 Reviewed-on: https://chromium-review.googlesource.com/1338508 Commit-Ready: David Tolnay Tested-by: David Tolnay Reviewed-by: Chirantan Ekbote --- bit_field/bit_field_derive/bit_field_derive.rs | 132 ++++++------ .../msg_on_socket_derive/msg_on_socket_derive.rs | 230 ++++++++++++--------- 2 files changed, 198 insertions(+), 164 deletions(-) diff --git a/bit_field/bit_field_derive/bit_field_derive.rs b/bit_field/bit_field_derive/bit_field_derive.rs index adb889d..3ddf037 100644 --- a/bit_field/bit_field_derive/bit_field_derive.rs +++ b/bit_field/bit_field_derive/bit_field_derive.rs @@ -75,7 +75,7 @@ fn bitfield_impl(ast: DeriveInput) -> TokenStream { let fields_impl = get_fields_impl(fields.as_slice()); let tests_impl = get_tests_impl(&name, fields.as_slice()); let debug_fmt_impl = get_debug_fmt_impl(&name, fields.as_slice()); - quote!( + quote! { #(#attrs)* #struct_def #bits_impl @@ -89,7 +89,7 @@ fn bitfield_impl(ast: DeriveInput) -> TokenStream { use super::*; #(#tests_impl)* } - ) + } } // Generate struct name from schema_name. "MyTypeSchema" -> "MyType". @@ -168,19 +168,21 @@ fn get_struct_def( // It will be something like: // "(BitField1::FIELD_WIDTH + BitField3::FIELD_WIDTH + BitField4::FIELD_WIDTH) / 8)" - let data_size_in_bytes = quote!( - ( #( #field_types::FIELD_WIDTH as usize )+* ) / 8 - ); - quote! ( + let data_size_in_bytes = quote! { + ( #( #field_types::FIELD_WIDTH as usize )+* ) / 8 + }; + quote! { #vis struct #name { data: [u8; #data_size_in_bytes], } impl #name { pub fn new() -> #name { - #name { data: [0; #data_size_in_bytes], } + #name { + data: [0; #data_size_in_bytes], + } } } - ) + } } // Implement setter and getter for all fields. @@ -195,19 +197,19 @@ fn get_fields_impl(fields: &[(String, TokenStream)]) -> Vec { let ct1 = current_types.clone(); let getter_ident = Ident::new(format!("get_{}", name).as_str(), Span::call_site()); let setter_ident = Ident::new(format!("set_{}", name).as_str(), Span::call_site()); - impls.push(quote!( - pub fn #getter_ident(&self) -> <#ty as BitFieldSpecifier>::DefaultFieldType { - let offset = #(#ct0::FIELD_WIDTH as usize)+*; - return self.get(offset, #ty::FIELD_WIDTH) as - <#ty as BitFieldSpecifier>::DefaultFieldType; - } + impls.push(quote! { + pub fn #getter_ident(&self) -> <#ty as BitFieldSpecifier>::DefaultFieldType { + let offset = #(#ct0::FIELD_WIDTH as usize)+*; + self.get(offset, #ty::FIELD_WIDTH) as + <#ty as BitFieldSpecifier>::DefaultFieldType + } - pub fn #setter_ident(&mut self, val: <#ty as BitFieldSpecifier>::DefaultFieldType) { - debug_assert!((val as u64) <= #ty::FIELD_MAX); - let offset = #(#ct1::FIELD_WIDTH as usize)+*; - return self.set(offset, #ty::FIELD_WIDTH, val as u64); - } - )); + pub fn #setter_ident(&mut self, val: <#ty as BitFieldSpecifier>::DefaultFieldType) { + debug_assert!((val as u64) <= #ty::FIELD_MAX); + let offset = #(#ct1::FIELD_WIDTH as usize)+*; + self.set(offset, #ty::FIELD_WIDTH, val as u64) + } + }); current_types.push(ty.clone()); } impls @@ -219,13 +221,13 @@ fn get_debug_fmt_impl(name: &TokenStream, fields: &[(String, TokenStream)]) -> T let mut impls = Vec::new(); for &(ref name, ref _ty) in fields { let getter_ident = Ident::new(format!("get_{}", name).as_str(), Span::call_site()); - impls.push(quote!( - .field(#name, &self.#getter_ident()) - )); + impls.push(quote! { + .field(#name, &self.#getter_ident()) + }); } let name_str = format!("{}", name); - quote! ( + quote! { impl std::fmt::Debug for #name { fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { f.debug_struct(#name_str) @@ -233,7 +235,7 @@ fn get_debug_fmt_impl(name: &TokenStream, fields: &[(String, TokenStream)]) -> T .finish() } } - ) + } } // Implement test. @@ -244,27 +246,30 @@ fn get_tests_impl(struct_name: &TokenStream, fields: &[(String, TokenStream)]) - } let field_types2 = field_types.clone(); let mut impls = Vec::new(); - impls.push(quote!( - #[test] - fn test_total_size() { - let total_size = #(#field_types::FIELD_WIDTH as usize)+*; - assert_eq!(total_size % 8, 0); - })); - impls.push(quote!(#[test] - fn test_bits_boundary() { - let fields_sizes = vec![#(#field_types2::FIELD_WIDTH as usize),*]; - let mut sum = 0usize; - for s in fields_sizes { - if sum % 64 == 0 { - assert!(s <= 64); - } else { - if (sum + s) % 64 != 0 { - assert_eq!(sum / 64, (sum + s) / 64); + impls.push(quote! { + #[test] + fn test_total_size() { + let total_size = #(#field_types::FIELD_WIDTH as usize)+*; + assert_eq!(total_size % 8, 0); + } + }); + impls.push(quote! { + #[test] + fn test_bits_boundary() { + let fields_sizes = vec![#(#field_types2::FIELD_WIDTH as usize),*]; + let mut sum = 0usize; + for s in fields_sizes { + if sum % 64 == 0 { + assert!(s <= 64); + } else { + if (sum + s) % 64 != 0 { + assert_eq!(sum / 64, (sum + s) / 64); + } } + sum += s; } - sum += s; } - })); + }); for &(ref name, ref ty) in fields { let testname = Ident::new( @@ -273,21 +278,21 @@ fn get_tests_impl(struct_name: &TokenStream, fields: &[(String, TokenStream)]) - ); let getter_ident = Ident::new(format!("get_{}", name.as_str()).as_str(), Span::call_site()); let setter_ident = Ident::new(format!("set_{}", name.as_str()).as_str(), Span::call_site()); - impls.push(quote!( - #[test] - fn #testname() { - let mut a = #struct_name::new(); - assert_eq!(a.#getter_ident() as u64, 0); - a.#setter_ident(#ty::FIELD_MAX as <#ty as BitFieldSpecifier>::DefaultFieldType); - assert_eq!(a.#getter_ident() as u64, #ty::FIELD_MAX); - } - )); + impls.push(quote! { + #[test] + fn #testname() { + let mut a = #struct_name::new(); + assert_eq!(a.#getter_ident() as u64, 0); + a.#setter_ident(#ty::FIELD_MAX as <#ty as BitFieldSpecifier>::DefaultFieldType); + assert_eq!(a.#getter_ident() as u64, #ty::FIELD_MAX); + } + }); } impls } fn get_bits_impl(name: &TokenStream) -> TokenStream { - quote!( + quote! { impl #name { #[inline] fn check_access(&self, offset: usize, width: u8) { @@ -296,7 +301,6 @@ fn get_bits_impl(name: &TokenStream) -> TokenStream { debug_assert!((offset + (width as usize)) <= (self.data.len() * 8)); } - #[inline] pub fn get_bit(&self, offset: usize) -> bool { self.check_access(offset, 1); @@ -352,7 +356,7 @@ fn get_bits_impl(name: &TokenStream) -> TokenStream { } } } - ) + } } #[cfg(test)] @@ -449,37 +453,37 @@ mod tests { impl MyBitField { pub fn get_a(&self) -> ::DefaultFieldType { let offset = BitField0::FIELD_WIDTH as usize; - return self.get(offset, BitField1::FIELD_WIDTH) - as ::DefaultFieldType; + self.get(offset, BitField1::FIELD_WIDTH) + as ::DefaultFieldType } pub fn set_a(&mut self, val: ::DefaultFieldType) { debug_assert!((val as u64) <= BitField1::FIELD_MAX); let offset = BitField0::FIELD_WIDTH as usize; - return self.set(offset, BitField1::FIELD_WIDTH, val as u64); + self.set(offset, BitField1::FIELD_WIDTH, val as u64) } pub fn get_b(&self) -> ::DefaultFieldType { let offset = BitField0::FIELD_WIDTH as usize + BitField1::FIELD_WIDTH as usize; - return self.get(offset, BitField2::FIELD_WIDTH) - as ::DefaultFieldType; + self.get(offset, BitField2::FIELD_WIDTH) + as ::DefaultFieldType } pub fn set_b(&mut self, val: ::DefaultFieldType) { debug_assert!((val as u64) <= BitField2::FIELD_MAX); let offset = BitField0::FIELD_WIDTH as usize + BitField1::FIELD_WIDTH as usize; - return self.set(offset, BitField2::FIELD_WIDTH, val as u64); + self.set(offset, BitField2::FIELD_WIDTH, val as u64) } pub fn get_c(&self) -> ::DefaultFieldType { let offset = BitField0::FIELD_WIDTH as usize + BitField1::FIELD_WIDTH as usize + BitField2::FIELD_WIDTH as usize; - return self.get(offset, BitField5::FIELD_WIDTH) - as ::DefaultFieldType; + self.get(offset, BitField5::FIELD_WIDTH) + as ::DefaultFieldType } pub fn set_c(&mut self, val: ::DefaultFieldType) { debug_assert!((val as u64) <= BitField5::FIELD_MAX); let offset = BitField0::FIELD_WIDTH as usize + BitField1::FIELD_WIDTH as usize + BitField2::FIELD_WIDTH as usize; - return self.set(offset, BitField5::FIELD_WIDTH, val as u64); + self.set(offset, BitField5::FIELD_WIDTH, val as u64) } } diff --git a/msg_socket/msg_on_socket_derive/msg_on_socket_derive.rs b/msg_socket/msg_on_socket_derive/msg_on_socket_derive.rs index 37a15f5..785cc84 100644 --- a/msg_socket/msg_on_socket_derive/msg_on_socket_derive.rs +++ b/msg_socket/msg_on_socket_derive/msg_on_socket_derive.rs @@ -75,13 +75,13 @@ fn impl_for_named_struct(name: Ident, ds: DataStruct) -> TokenStream { let read_buffer = define_read_buffer_for_struct(&name, &fields); let write_buffer = define_write_buffer_for_struct(&name, &fields); - quote!( + quote! { impl _msg_socket::MsgOnSocket for #name { #buffer_sizes_impls #read_buffer #write_buffer } - ) + } } fn get_types_from_fields_vec(v: &[(Ident, syn::Type)]) -> Vec { @@ -132,11 +132,13 @@ fn define_read_buffer_for_struct(_name: &Ident, fields: &[(Ident, syn::Type)]) - let read_field = read_from_buffer_and_move_offset(&f.0, &f.1); read_fields.push(read_field); let name = f.0.clone(); - init_fields.push(quote!( #name )); + init_fields.push(quote!(#name)); } - quote!{ - unsafe fn read_from_buffer(buffer: &[u8], fds: &[std::os::unix::io::RawFd]) - -> _msg_socket::MsgResult<(Self, usize)> { + quote! { + unsafe fn read_from_buffer( + buffer: &[u8], + fds: &[std::os::unix::io::RawFd], + ) -> _msg_socket::MsgResult<(Self, usize)> { let mut __offset = 0usize; let mut __fd_offset = 0usize; #(#read_fields)* @@ -156,9 +158,12 @@ fn define_write_buffer_for_struct(_name: &Ident, fields: &[(Ident, syn::Type)]) let write_field = write_to_buffer_and_move_offset(&f.0, &f.1); write_fields.push(write_field); } - quote!{ - fn write_to_buffer(&self, buffer: &mut [u8], fds: &mut [std::os::unix::io::RawFd]) - -> _msg_socket::MsgResult { + quote! { + fn write_to_buffer( + &self, + buffer: &mut [u8], + fds: &mut [std::os::unix::io::RawFd], + ) -> _msg_socket::MsgResult { let mut __offset = 0usize; let mut __fd_offset = 0usize; #(#write_fields)* @@ -174,13 +179,13 @@ fn impl_for_enum(name: Ident, de: DataEnum) -> TokenStream { let read_buffer = define_read_buffer_for_enum(&name, &de); let write_buffer = define_write_buffer_for_enum(&name, &de); - quote!( + quote! { impl _msg_socket::MsgOnSocket for #name { #buffer_sizes_impls #read_buffer #write_buffer } - ) + } } fn define_buffer_size_for_enum(variants: &[(Ident, Vec)]) -> TokenStream { @@ -249,14 +254,14 @@ fn define_read_buffer_for_enum(name: &Ident, de: &DataEnum) -> TokenStream { let read_tmp = read_from_buffer_and_move_offset(&f.ident.unwrap(), &f.ty); read_tmps.push(read_tmp); } - let v = quote!( + let v = quote! { #i => { let mut __offset = 1usize; let mut __fd_offset = 0usize; #(#read_tmps)* - Ok((#name::#variant_name{ #(#tmp_names),*}, __fd_offset)) + Ok((#name::#variant_name { #(#tmp_names),* }, __fd_offset)) } - ); + }; match_variants.push(v); } Fields::Unnamed(fields) => { @@ -272,37 +277,37 @@ fn define_read_buffer_for_enum(name: &Ident, de: &DataEnum) -> TokenStream { j += 1; } - let v = quote!( + let v = quote! { #i => { let mut __offset = 1usize; let mut __fd_offset = 0usize; #(#read_tmps)* Ok((#name::#variant_name( #(#tmp_names),*), __fd_offset)) } - ); + }; match_variants.push(v); } Fields::Unit => { - let v = quote!( + let v = quote! { #i => Ok((#name::#variant_name, 0)), - ); + }; match_variants.push(v); } } i += 1; } - quote!( - unsafe fn read_from_buffer(buffer: &[u8], fds: &[std::os::unix::io::RawFd]) - -> _msg_socket::MsgResult<(Self, usize)> { + quote! { + unsafe fn read_from_buffer( + buffer: &[u8], + fds: &[std::os::unix::io::RawFd], + ) -> _msg_socket::MsgResult<(Self, usize)> { let v = buffer[0]; match v { #(#match_variants)* - _ => { - Err(_msg_socket::MsgError::InvalidType) - } + _ => Err(_msg_socket::MsgError::InvalidType), } } - ) + } } fn define_write_buffer_for_enum(name: &Ident, de: &DataEnum) -> TokenStream { @@ -321,15 +326,15 @@ fn define_write_buffer_for_enum(name: &Ident, de: &DataEnum) -> TokenStream { write_tmps.push(write_tmp); } - let v = quote!( - #name::#variant_name{#(#tmp_names),*} => { + let v = quote! { + #name::#variant_name { #(#tmp_names),* } => { buffer[0] = #i; let mut __offset = 1usize; let mut __fd_offset = 0usize; #(#write_tmps)* Ok(__fd_offset) } - ); + }; match_variants.push(v); } Fields::Unnamed(fields) => { @@ -345,7 +350,7 @@ fn define_write_buffer_for_enum(name: &Ident, de: &DataEnum) -> TokenStream { j += 1; } - let v = quote!( + let v = quote! { #name::#variant_name(#(#tmp_names),*) => { buffer[0] = #i; let mut __offset = 1usize; @@ -353,34 +358,37 @@ fn define_write_buffer_for_enum(name: &Ident, de: &DataEnum) -> TokenStream { #(#write_tmps)* Ok(__fd_offset) } - ); + }; match_variants.push(v); } Fields::Unit => { - let v = quote!( + let v = quote! { #name::#variant_name => { buffer[0] = #i; Ok(0) } - ); + }; match_variants.push(v); } } i += 1; } - quote!( - fn write_to_buffer(&self, buffer: &mut [u8], fds: &mut [std::os::unix::io::RawFd]) - -> _msg_socket::MsgResult { + quote! { + fn write_to_buffer( + &self, + buffer: &mut [u8], + fds: &mut [std::os::unix::io::RawFd], + ) -> _msg_socket::MsgResult { match self { #(#match_variants)* } } - ) + } } fn enum_write_to_buffer_and_move_offset(name: &Ident, ty: &syn::Type) -> TokenStream { - quote!{ + quote! { let o = #name.write_to_buffer(&mut buffer[__offset..], &mut fds[__fd_offset..])?; __offset += <#ty>::msg_size(); __fd_offset += o; @@ -395,13 +403,13 @@ fn impl_for_tuple_struct(name: Ident, ds: DataStruct) -> TokenStream { let read_buffer = define_read_buffer_for_tuples(&name, &types); let write_buffer = define_write_buffer_for_tuples(&name, &types); - quote!( + quote! { impl _msg_socket::MsgOnSocket for #name { #buffer_sizes_impls #read_buffer #write_buffer } - ) + } } fn get_tuple_types(ds: DataStruct) -> Vec { @@ -427,12 +435,14 @@ fn define_read_buffer_for_tuples(name: &Ident, fields: &[syn::Type]) -> TokenStr let tmp_name = Ident::new(&tmp_name, Span::call_site()); let read_field = read_from_buffer_and_move_offset(&tmp_name, &fields[i]); read_fields.push(read_field); - init_fields.push(quote!( #tmp_name )); + init_fields.push(quote!(#tmp_name)); } - quote!{ - unsafe fn read_from_buffer(buffer: &[u8], fds: &[std::os::unix::io::RawFd]) - -> _msg_socket::MsgResult<(Self, usize)> { + quote! { + unsafe fn read_from_buffer( + buffer: &[u8], + fds: &[std::os::unix::io::RawFd], + ) -> _msg_socket::MsgResult<(Self, usize)> { let mut __offset = 0usize; let mut __fd_offset = 0usize; #(#read_fields)* @@ -456,9 +466,12 @@ fn define_write_buffer_for_tuples(name: &Ident, fields: &[syn::Type]) -> TokenSt write_fields.push(write_field); tmp_names.push(tmp_name); } - quote!{ - fn write_to_buffer(&self, buffer: &mut [u8], fds: &mut [std::os::unix::io::RawFd]) - -> _msg_socket::MsgResult { + quote! { + fn write_to_buffer( + &self, + buffer: &mut [u8], + fds: &mut [std::os::unix::io::RawFd], + ) -> _msg_socket::MsgResult { let mut __offset = 0usize; let mut __fd_offset = 0usize; let #name( #(#tmp_names),* ) = self; @@ -471,12 +484,12 @@ fn define_write_buffer_for_tuples(name: &Ident, fields: &[syn::Type]) -> TokenSt fn get_fields_buffer_size_sum(field_types: &[syn::Type]) -> (TokenStream, TokenStream) { if field_types.len() > 0 { ( - quote!( + quote! { #( <#field_types>::msg_size() as usize )+* - ), - quote!( + }, + quote! { #( <#field_types>::max_fd_count() as usize )+* - ), + }, ) } else { (quote!(0), quote!(0)) @@ -484,7 +497,7 @@ fn get_fields_buffer_size_sum(field_types: &[syn::Type]) -> (TokenStream, TokenS } fn read_from_buffer_and_move_offset(name: &Ident, ty: &syn::Type) -> TokenStream { - quote!{ + quote! { let t = <#ty>::read_from_buffer(&buffer[__offset..], &fds[__fd_offset..])?; __offset += <#ty>::msg_size(); __fd_offset += t.1; @@ -493,7 +506,7 @@ fn read_from_buffer_and_move_offset(name: &Ident, ty: &syn::Type) -> TokenStream } fn write_to_buffer_and_move_offset(name: &Ident, ty: &syn::Type) -> TokenStream { - quote!{ + quote! { let o = self.#name.write_to_buffer(&mut buffer[__offset..], &mut fds[__fd_offset..])?; __offset += <#ty>::msg_size(); __fd_offset += o; @@ -518,17 +531,19 @@ mod tests { let expected = quote! { impl _msg_socket::MsgOnSocket for MyMsg { fn msg_size() -> usize { - ::msg_size() as usize + ::msg_size() as usize + ::msg_size() as usize + ::msg_size() as usize } fn max_fd_count() -> usize { - ::max_fd_count() as usize + ::max_fd_count() as usize + ::max_fd_count() as usize + ::max_fd_count() as usize } - unsafe fn read_from_buffer(buffer: &[u8], fds: &[std::os::unix::io::RawFd]) - -> _msg_socket::MsgResult<(Self, usize)> { + unsafe fn read_from_buffer( + buffer: &[u8], + fds: &[std::os::unix::io::RawFd], + ) -> _msg_socket::MsgResult<(Self, usize)> { let mut __offset = 0usize; let mut __fd_offset = 0usize; let t = ::read_from_buffer(&buffer[__offset..], &fds[__fd_offset..])?; @@ -545,20 +560,23 @@ mod tests { let c = t.0; Ok((Self { a, b, c }, __fd_offset)) } - fn write_to_buffer(&self, buffer: &mut [u8], fds: &mut [std::os::unix::io::RawFd]) - -> _msg_socket::MsgResult { + fn write_to_buffer( + &self, + buffer: &mut [u8], + fds: &mut [std::os::unix::io::RawFd], + ) -> _msg_socket::MsgResult { let mut __offset = 0usize; let mut __fd_offset = 0usize; - let o = self.a.write_to_buffer(&mut buffer[__offset..], - &mut fds[__fd_offset..])?; + let o = self.a + .write_to_buffer(&mut buffer[__offset..], &mut fds[__fd_offset..])?; __offset += ::msg_size(); __fd_offset += o; - let o = self.b.write_to_buffer(&mut buffer[__offset..], - &mut fds[__fd_offset..])?; + let o = self.b + .write_to_buffer(&mut buffer[__offset..], &mut fds[__fd_offset..])?; __offset += ::msg_size(); __fd_offset += o; - let o = self.c.write_to_buffer(&mut buffer[__offset..], - &mut fds[__fd_offset..])?; + let o = self.c + .write_to_buffer(&mut buffer[__offset..], &mut fds[__fd_offset..])?; __offset += ::msg_size(); __fd_offset += o; Ok(__fd_offset) @@ -578,16 +596,19 @@ mod tests { let expected = quote! { impl _msg_socket::MsgOnSocket for MyMsg { fn msg_size() -> usize { - ::msg_size() as usize + - ::msg_size() as usize + ::msg_size() as usize + ::msg_size() as usize + + ::msg_size() as usize + + ::msg_size() as usize } fn max_fd_count() -> usize { ::max_fd_count() as usize + ::max_fd_count() as usize + ::max_fd_count() as usize } - unsafe fn read_from_buffer(buffer: &[u8], fds: &[std::os::unix::io::RawFd]) - -> _msg_socket::MsgResult<(Self, usize)> { + unsafe fn read_from_buffer( + buffer: &[u8], + fds: &[std::os::unix::io::RawFd], + ) -> _msg_socket::MsgResult<(Self, usize)> { let mut __offset = 0usize; let mut __fd_offset = 0usize; let t = ::read_from_buffer(&buffer[__offset..], &fds[__fd_offset..])?; @@ -604,21 +625,24 @@ mod tests { let tuple_tmp2 = t.0; Ok((MyMsg(tuple_tmp0, tuple_tmp1, tuple_tmp2), __fd_offset)) } - fn write_to_buffer(&self, buffer: &mut [u8], fds: &mut [std::os::unix::io::RawFd]) - -> _msg_socket::MsgResult { + fn write_to_buffer( + &self, + buffer: &mut [u8], + fds: &mut [std::os::unix::io::RawFd], + ) -> _msg_socket::MsgResult { let mut __offset = 0usize; let mut __fd_offset = 0usize; let MyMsg(tuple_tmp0, tuple_tmp1, tuple_tmp2) = self; - let o = tuple_tmp0. - write_to_buffer(&mut buffer[__offset..], &mut fds[__fd_offset..])?; + let o = tuple_tmp0 + .write_to_buffer(&mut buffer[__offset..], &mut fds[__fd_offset..])?; __offset += ::msg_size(); __fd_offset += o; - let o = tuple_tmp1. - write_to_buffer(&mut buffer[__offset..], &mut fds[__fd_offset..])?; + let o = tuple_tmp1 + .write_to_buffer(&mut buffer[__offset..], &mut fds[__fd_offset..])?; __offset += ::msg_size(); __fd_offset += o; - let o = tuple_tmp2. - write_to_buffer(&mut buffer[__offset..], &mut fds[__fd_offset..])?; + let o = tuple_tmp2 + .write_to_buffer(&mut buffer[__offset..], &mut fds[__fd_offset..])?; __offset += ::msg_size(); __fd_offset += o; Ok(__fd_offset) @@ -635,7 +659,10 @@ mod tests { enum MyMsg { A(u8), B, - C{f0: u8, f1: RawFd}, + C { + f0: u8, + f1: RawFd, + }, } }; @@ -657,15 +684,17 @@ mod tests { ].iter() .max().unwrap().clone() as usize } - unsafe fn read_from_buffer(buffer: &[u8], fds: &[std::os::unix::io::RawFd]) -> - _msg_socket::MsgResult<(Self, usize)> { + unsafe fn read_from_buffer( + buffer: &[u8], + fds: &[std::os::unix::io::RawFd], + ) -> _msg_socket::MsgResult<(Self, usize)> { let v = buffer[0]; match v { 0u8 => { let mut __offset = 1usize; let mut __fd_offset = 0usize; - let t = ::read_from_buffer(&buffer[__offset..], - &fds[__fd_offset..])?; + let t = + ::read_from_buffer(&buffer[__offset..], &fds[__fd_offset..])?; __offset += ::msg_size(); __fd_offset += t.1; let enum_variant_tmp0 = t.0; @@ -675,34 +704,35 @@ mod tests { 2u8 => { let mut __offset = 1usize; let mut __fd_offset = 0usize; - let t = ::read_from_buffer(&buffer[__offset..], - &fds[__fd_offset..])?; + let t = + ::read_from_buffer(&buffer[__offset..], &fds[__fd_offset..])?; __offset += ::msg_size(); __fd_offset += t.1; let f0 = t.0; - let t = ::read_from_buffer(&buffer[__offset..], - &fds[__fd_offset..])?; + let t = ::read_from_buffer( + &buffer[__offset..], + &fds[__fd_offset..] + )?; __offset += ::msg_size(); __fd_offset += t.1; let f1 = t.0; - Ok((MyMsg::C{f0, f1}, __fd_offset)) - } - _ => { - Err(_msg_socket::MsgError::InvalidType) + Ok((MyMsg::C { f0, f1 }, __fd_offset)) } + _ => Err(_msg_socket::MsgError::InvalidType), } } - fn write_to_buffer(&self, - buffer: &mut [u8], - fds: &mut [std::os::unix::io::RawFd]) - -> _msg_socket::MsgResult { + fn write_to_buffer( + &self, + buffer: &mut [u8], + fds: &mut [std::os::unix::io::RawFd], + ) -> _msg_socket::MsgResult { match self { MyMsg::A(enum_variant_tmp0) => { buffer[0] = 0u8; let mut __offset = 1usize; let mut __fd_offset = 0usize; - let o = enum_variant_tmp0. - write_to_buffer(&mut buffer[__offset..], &mut fds[__fd_offset..])?; + let o = enum_variant_tmp0 + .write_to_buffer(&mut buffer[__offset..], &mut fds[__fd_offset..])?; __offset += ::msg_size(); __fd_offset += o; Ok(__fd_offset) @@ -711,16 +741,16 @@ mod tests { buffer[0] = 1u8; Ok(0) } - MyMsg::C{f0, f1} => { + MyMsg::C { f0, f1 } => { buffer[0] = 2u8; let mut __offset = 1usize; let mut __fd_offset = 0usize; - let o = f0. - write_to_buffer(&mut buffer[__offset..], &mut fds[__fd_offset..])?; + let o = f0 + .write_to_buffer(&mut buffer[__offset..], &mut fds[__fd_offset..])?; __offset += ::msg_size(); __fd_offset += o; - let o = f1.write_to_buffer( - &mut buffer[__offset..], &mut fds[__fd_offset..])?; + let o = f1 + .write_to_buffer(&mut buffer[__offset..], &mut fds[__fd_offset..])?; __offset += ::msg_size(); __fd_offset += o; Ok(__fd_offset) -- cgit 1.4.1