aboutsummaryrefslogtreecommitdiff
path: root/macros/src/codegen/util.rs
diff options
context:
space:
mode:
Diffstat (limited to 'macros/src/codegen/util.rs')
-rw-r--r--macros/src/codegen/util.rs29
1 files changed, 29 insertions, 0 deletions
diff --git a/macros/src/codegen/util.rs b/macros/src/codegen/util.rs
index 9ccdbf78..92c7154a 100644
--- a/macros/src/codegen/util.rs
+++ b/macros/src/codegen/util.rs
@@ -111,6 +111,27 @@ pub fn is_exception(name: &Ident) -> bool {
)
}
+/// Generate an internal identifier for monotonics
+pub fn internal_monotonics_ident(task: &Ident, monotonic: &Ident, ident_name: &str) -> Ident {
+ Ident::new(
+ &format!(
+ "__rtic_internal_{}_{}_{}",
+ task.to_string(),
+ monotonic.to_string(),
+ ident_name,
+ ),
+ Span::call_site(),
+ )
+}
+
+/// Generate an internal identifier for tasks
+pub fn internal_task_ident(task: &Ident, ident_name: &str) -> Ident {
+ Ident::new(
+ &format!("__rtic_internal_{}_{}", task.to_string(), ident_name,),
+ Span::call_site(),
+ )
+}
+
/// Mark an ident as internal
pub fn mark_internal_ident(ident: &Ident) -> Ident {
Ident::new(
@@ -119,6 +140,14 @@ pub fn mark_internal_ident(ident: &Ident) -> Ident {
)
}
+/// Mark an ident as internal
+pub fn mark_internal_name(name: &str) -> Ident {
+ Ident::new(
+ &format!("__rtic_internal_{}", name),
+ Span::call_site(),
+ )
+}
+
fn link_section_index() -> usize {
static INDEX: AtomicUsize = AtomicUsize::new(0);