From 9d5b60754bb26d9bee4d6b2d96defe29c934dd0a Mon Sep 17 00:00:00 2001 From: "William D. Jones" Date: Thu, 15 Apr 2021 17:34:38 -0400 Subject: [PATCH 1/2] Emit code to bring generic module into scope when using `-g` option. --- CHANGELOG.md | 2 ++ src/generate/device.rs | 7 +++++++ src/lib.rs | 4 ++++ 3 files changed, 13 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fd7877b3..7d826cb7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/). - Ignore default enumeratedValues. +- Bring `generic` module into scope in `lib.rs` when using `-g` option. + ### Changed - [breaking-change] remove `Variant`, use `Option` instead diff --git a/src/generate/device.rs b/src/generate/device.rs index 00453828..687c37d8 100644 --- a/src/generate/device.rs +++ b/src/generate/device.rs @@ -146,6 +146,13 @@ pub fn render( let generic_file = std::str::from_utf8(include_bytes!("generic.rs"))?; if generic_mod { writeln!(File::create("generic.rs")?, "{}", generic_file)?; + + out.extend(quote! { + #[allow(unused_imports)] + use generic::*; + ///Common register and bit access and modify traits + pub mod generic; + }); } else { let tokens = syn::parse_file(generic_file)?.into_token_stream(); diff --git a/src/lib.rs b/src/lib.rs index 424e72c0..a1a4e8a3 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -26,6 +26,10 @@ //! //! If the `--target` flag is omitted `svd2rust` assumes the target is the Cortex-M architecture. //! +//! If using the `--generic_mod` option, the emitted `generic.rs` needs to be moved to `src`, and +//! [`form`](https://github.com/djmcgill/form) commit fcb397a or newer is required for splitting +//! the emitted `lib.rs`. +//! //! ## target = cortex-m //! //! When targeting the Cortex-M architecture, `svd2rust` will generate three files in the current From cc3eef66fef08e7fed15ba2a5fce989bd26e45f5 Mon Sep 17 00:00:00 2001 From: "William D. Jones" Date: Thu, 15 Apr 2021 18:31:40 -0400 Subject: [PATCH 2/2] Ensure doc comments importing generic module are generated when using `-g` option. Co-authored-by: Adam Greig --- src/generate/device.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/generate/device.rs b/src/generate/device.rs index 687c37d8..dce87bd4 100644 --- a/src/generate/device.rs +++ b/src/generate/device.rs @@ -150,7 +150,7 @@ pub fn render( out.extend(quote! { #[allow(unused_imports)] use generic::*; - ///Common register and bit access and modify traits + #[doc="Common register and bit access and modify traits"] pub mod generic; }); } else {