Output aesthetics tweaks: extra `__NEWLINE__` tokens. This CL has been manually tested by looking at `impls_cc_api.h` generated from `cc_bindings_from_rs/test/impls/impl.rs`. Ideally the effects of this CL would be covered by automated `test/golden` tests but implementing them is blocked by an unrelated issue. PiperOrigin-RevId: 509350740
diff --git a/cc_bindings_from_rs/bindings.rs b/cc_bindings_from_rs/bindings.rs index c5858c7..5382360 100644 --- a/cc_bindings_from_rs/bindings.rs +++ b/cc_bindings_from_rs/bindings.rs
@@ -710,10 +710,12 @@ CcSnippet { prereqs, tokens: quote! { + __NEWLINE__ #doc_comment #static_ #extern_c_or_inline #cc_ret_type #cc_fn_name ( #( #cc_arg_types #cc_arg_names ),* ); + __NEWLINE__ }, } }; @@ -739,6 +741,7 @@ let cc = CcSnippet { prereqs, tokens: quote! { + __NEWLINE__ namespace __crubit_internal { extern "C" #cc_ret_type #cc_exported_name ( #( #cc_arg_types #cc_arg_names ),* @@ -748,6 +751,7 @@ #( #cc_arg_types #cc_arg_names ),* ) { return __crubit_internal :: #cc_exported_name( #( #thunk_args ),* ); } + __NEWLINE__ }, }; @@ -1052,17 +1056,20 @@ // TODO(b/258233850): Emit individual fields. unsigned char opaque_blob_of_bytes[#size]; }; + __NEWLINE__ }, } }; let impl_details = { let mut cc = CcSnippet::new(quote! { + __NEWLINE__ static_assert( sizeof(#cc_name) == #size, "Verify that struct layout didn't change since this header got generated"); static_assert( alignof(#cc_name) == #alignment, "Verify that struct layout didn't change since this header got generated"); + __NEWLINE__ }); cc.prereqs.defs.insert(local_def_id); let rs = { @@ -1286,10 +1293,14 @@ let includes = format_cc_includes(&includes); let ordered_cc = format_namespace_bound_cc_tokens(ordered_cc); quote! { - #includes __NEWLINE__ + #includes + __NEWLINE__ __NEWLINE__ namespace #crate_name { + __NEWLINE__ #ordered_cc + __NEWLINE__ } + __NEWLINE__ } };
diff --git a/cc_bindings_from_rs/cc_bindings_from_rs.rs b/cc_bindings_from_rs/cc_bindings_from_rs.rs index 3027780..090cb66 100644 --- a/cc_bindings_from_rs/cc_bindings_from_rs.rs +++ b/cc_bindings_from_rs/cc_bindings_from_rs.rs
@@ -288,10 +288,13 @@ #pragma once namespace test_crate { -namespace public_module {"#, + +namespace public_module { +"#, // TODO(b/261185414): Avoid assuming that all source code paths are google3 paths. format!("// Generated from: google3{temp_dir_str}/test_crate.rs;l=2"), r#"inline void public_function(); + namespace __crubit_internal { extern "C" void __crubit_thunk__ANY_IDENTIFIER_CHARACTERS(); @@ -300,8 +303,11 @@ return __crubit_internal:: __crubit_thunk__ANY_IDENTIFIER_CHARACTERS(); } + } // namespace public_module -} // namespace test_crate"# + +} // namespace test_crate +"# ), );