diff --git a/CHANGELOG.md b/CHANGELOG.md index e8fb5f4..0f7d9a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improve error message from syn in generator. !15 - Removed top level module (register_interface), and now it can have arbitrary name. +- Use full path `RegisterSpec`s to avoid unused `use` ## [0.3.1] - 2025-04-11 diff --git a/src/generator.rs b/src/generator.rs index 8fa5ff7..94ea55f 100644 --- a/src/generator.rs +++ b/src/generator.rs @@ -455,7 +455,6 @@ impl CodeGen for Register { use std::marker::PhantomData; use crate::axic2c1::spec::AxiC2c1Spec; - use crate::register_spec::{DataConversionError, Modifiable, Readable, RegisterSpec, Writable}; const OFFSET: usize = #addr; diff --git a/src/generator/codegen_register.rs b/src/generator/codegen_register.rs index b54e4a9..07533f3 100644 --- a/src/generator/codegen_register.rs +++ b/src/generator/codegen_register.rs @@ -76,7 +76,7 @@ fn reg_type_def_masked( #[derive(Debug, Clone, Copy, Default)] pub struct #upper_camel_name(pub #type_ux); impl TryFrom<#type_ux> for #upper_camel_name { - type Error = DataConversionError<#type_ux, Self>; + type Error = register_spec::DataConversionError<#type_ux, Self>; fn try_from(value: #type_ux) -> Result { Ok(Self(value & #mask)) @@ -137,7 +137,7 @@ fn reg_type_def_with_field( #(#code_setters)* } impl TryFrom<#type_ux> for #upper_camel_name { - type Error = DataConversionError<#type_ux, Self>; + type Error = register_spec::DataConversionError<#type_ux, Self>; fn try_from(value: #type_ux) -> Result { Ok(Self { inner: value }) diff --git a/src/generator/codegen_registerspec_impl.rs b/src/generator/codegen_registerspec_impl.rs index 32604a0..5eca06c 100644 --- a/src/generator/codegen_registerspec_impl.rs +++ b/src/generator/codegen_registerspec_impl.rs @@ -11,19 +11,19 @@ pub(super) fn gen_registerspec_impl( ) -> TokenStream { let impl_rw = match modf { RwSpecifier::R => quote! { - impl Readable for #reg_name<'_, T> {} + impl register_spec::Readable for #reg_name<'_, T> {} }, RwSpecifier::W => quote! { - impl Writable for #reg_name<'_, T> {} + impl register_spec::Writable for #reg_name<'_, T> {} }, RwSpecifier::RW => quote! { - impl Readable for #reg_name<'_, T> {} - impl Writable for #reg_name<'_, T> {} - impl Modifiable for #reg_name<'_, T> {} + impl register_spec::Readable for #reg_name<'_, T> {} + impl register_spec::Writable for #reg_name<'_, T> {} + impl register_spec::Modifiable for #reg_name<'_, T> {} }, }; quote! { - impl RegisterSpec for #reg_name<'_, T> { + impl register_spec::RegisterSpec for #reg_name<'_, T> { type Ux = #type_ux; type T = #type_t;