use label::create_label;
create_label!(
fn test() -> ();
fn test2(usize) -> usize;
);
pub mod child {
#[super::test::label]
fn my_fn() {
println!("Test2!");
}
}
pub mod folder {
#[crate::test::label]
#[child::test1::label]
fn my_fn() {
println!("Test4!");
}
pub mod child {
use label::create_label;
#[super::super::test::label]
fn my_fn() {
println!("Test3!");
}
create_label!(fn test1() -> ());
}
}
#[test::label]
#[folder::child::test1::label]
fn my_fn() {
println!("Test1!");
}
#[test2::label]
fn my_usize_fn(x: usize) -> usize {
println!("my usize: {}", x);
x + 1
}
fn main() {
println!("calling all 'test' label");
for i in test::iter() {
i();
}
println!("calling all 'test1' label");
for i in folder::child::test1::iter() {
i();
}
println!("calling all 'usize' label");
for i in test2::iter() {
println!("{}", i(3));
}
}