aboutsummaryrefslogtreecommitdiff
path: root/macros/src/codegen/shared_resources_struct.rs
diff options
context:
space:
mode:
authorGravatar bors[bot] <26634292+bors[bot]@users.noreply.github.com> 2023-01-22 06:57:56 +0000
committerGravatar GitHub <noreply@github.com> 2023-01-22 06:57:56 +0000
commitb0bda53e4e650dccb1a30718ce8dbefef6584ad0 (patch)
tree066088a7df2514af02ee0cebe6646e41efddf963 /macros/src/codegen/shared_resources_struct.rs
parent86ce8919aec4623a0816b28f1adcd86db33689c8 (diff)
parent3f74f3b8459fdd451707511954a6ea3d128aabe3 (diff)
downloadrtic-b0bda53e4e650dccb1a30718ce8dbefef6584ad0.tar.gz
rtic-b0bda53e4e650dccb1a30718ce8dbefef6584ad0.tar.zst
rtic-b0bda53e4e650dccb1a30718ce8dbefef6584ad0.zip
Merge #689
689: Missing docs: Improve #[doc] generation r=korken89 a=AfoHT Improve RTIC doc handling Enable use of ``` #![deny(missing_docs)] ``` and makes the cargo doc output more useful Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
Diffstat (limited to 'macros/src/codegen/shared_resources_struct.rs')
-rw-r--r--macros/src/codegen/shared_resources_struct.rs15
1 files changed, 14 insertions, 1 deletions
diff --git a/macros/src/codegen/shared_resources_struct.rs b/macros/src/codegen/shared_resources_struct.rs
index 90cbc1be..7b6cd20d 100644
--- a/macros/src/codegen/shared_resources_struct.rs
+++ b/macros/src/codegen/shared_resources_struct.rs
@@ -44,14 +44,18 @@ pub fn codegen(ctxt: Context, needs_lt: &mut bool, app: &App) -> (TokenStream2,
quote!('a)
};
+ let lock_free_resource_doc = format!(" Lock free resource `{name}`");
fields.push(quote!(
+ #[doc = #lock_free_resource_doc]
#(#cfgs)*
pub #name: &#lt #mut_ #ty
));
} else if access.is_shared() {
lt = Some(quote!('a));
+ let shared_resource_doc = format!(" Shared resource `{name}`");
fields.push(quote!(
+ #[doc = #shared_resource_doc]
#(#cfgs)*
pub #name: &'a #ty
));
@@ -59,12 +63,16 @@ pub fn codegen(ctxt: Context, needs_lt: &mut bool, app: &App) -> (TokenStream2,
// Resource proxy
lt = Some(quote!('a));
+ let resource_doc =
+ format!(" Resource proxy resource `{name}`. Use method `.lock()` to gain access");
fields.push(quote!(
+ #[doc = #resource_doc]
#(#cfgs)*
pub #name: shared_resources::#shared_name<'a>
));
values.push(quote!(
+ #[doc(hidden)]
#(#cfgs)*
#name: shared_resources::#shared_name::new(priority)
@@ -74,13 +82,17 @@ pub fn codegen(ctxt: Context, needs_lt: &mut bool, app: &App) -> (TokenStream2,
continue;
}
+ let resource_doc;
let expr = if access.is_exclusive() {
+ resource_doc = format!(" Exclusive access resource `{name}`");
quote!(&mut *(&mut *#mangled_name.get_mut()).as_mut_ptr())
} else {
+ resource_doc = format!(" Non-exclusive access resource `{name}`");
quote!(&*(&*#mangled_name.get()).as_ptr())
};
values.push(quote!(
+ #[doc = #resource_doc]
#(#cfgs)*
#name: #expr
));
@@ -100,7 +112,7 @@ pub fn codegen(ctxt: Context, needs_lt: &mut bool, app: &App) -> (TokenStream2,
}
}
- let doc = format!("Shared resources `{}` has access to", ctxt.ident(app));
+ let doc = format!(" Shared resources `{}` has access to", ctxt.ident(app));
let ident = util::shared_resources_ident(ctxt, app);
let item = quote!(
#[allow(non_snake_case)]
@@ -118,6 +130,7 @@ pub fn codegen(ctxt: Context, needs_lt: &mut bool, app: &App) -> (TokenStream2,
};
let constructor = quote!(
impl<#lt> #ident<#lt> {
+ #[doc(hidden)]
#[inline(always)]
pub unsafe fn new(#arg) -> Self {
#ident {