aboutsummaryrefslogtreecommitdiff
path: root/macros/src/syntax/parse/init.rs
diff options
context:
space:
mode:
authorGravatar Emil Fresk <emil.fresk@gmail.com> 2023-01-23 20:05:47 +0100
committerGravatar Henrik Tjäder <henrik@tjaders.com> 2023-03-01 00:33:31 +0100
commit306aa47170fd59369b7a184924e287dc3706d64d (patch)
tree75a331a63a4021f078e330bf2ce4edb1228e2ecf /macros/src/syntax/parse/init.rs
parentb8b881f446a226d6f3c4a7db7c9174590b47dbf6 (diff)
downloadrtic-306aa47170fd59369b7a184924e287dc3706d64d.tar.gz
rtic-306aa47170fd59369b7a184924e287dc3706d64d.tar.zst
rtic-306aa47170fd59369b7a184924e287dc3706d64d.zip
Add rtic-timer (timerqueue + monotonic) and rtic-monotonics (systick-monotonic)
Diffstat (limited to 'macros/src/syntax/parse/init.rs')
-rw-r--r--macros/src/syntax/parse/init.rs51
1 files changed, 0 insertions, 51 deletions
diff --git a/macros/src/syntax/parse/init.rs b/macros/src/syntax/parse/init.rs
deleted file mode 100644
index 0aea20bd..00000000
--- a/macros/src/syntax/parse/init.rs
+++ /dev/null
@@ -1,51 +0,0 @@
-use proc_macro2::TokenStream as TokenStream2;
-
-use syn::{parse, ItemFn};
-
-use crate::syntax::{
- ast::{Init, InitArgs},
- parse::{self as syntax_parse, util},
-};
-
-impl InitArgs {
- pub(crate) fn parse(tokens: TokenStream2) -> parse::Result<Self> {
- syntax_parse::init_args(tokens)
- }
-}
-
-impl Init {
- pub(crate) fn parse(args: InitArgs, item: ItemFn) -> parse::Result<Self> {
- let valid_signature = util::check_fn_signature(&item, false) && item.sig.inputs.len() == 1;
-
- let span = item.sig.ident.span();
-
- let name = item.sig.ident.to_string();
-
- if valid_signature {
- if let Ok((user_shared_struct, user_local_struct)) =
- util::type_is_init_return(&item.sig.output)
- {
- if let Some((context, Ok(rest))) = util::parse_inputs(item.sig.inputs, &name) {
- if rest.is_empty() {
- return Ok(Init {
- args,
- attrs: item.attrs,
- context,
- name: item.sig.ident,
- stmts: item.block.stmts,
- user_shared_struct,
- user_local_struct,
- });
- }
- }
- }
- }
-
- Err(parse::Error::new(
- span,
- format!(
- "the `#[init]` function must have signature `fn({name}::Context) -> (Shared resources struct, Local resources struct)`"
- ),
- ))
- }
-}