Fix calling inherent instead of trait methods
This commit is contained in:
		
							parent
							
								
									bfb4b4b2d7
								
							
						
					
					
						commit
						0fc0b42f31
					
				
					 3 changed files with 35 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
[package]
 | 
			
		||||
name = "eventbus"
 | 
			
		||||
version = "0.3.1"
 | 
			
		||||
version = "0.3.2"
 | 
			
		||||
authors = ["SoniEx2 <endermoneymod@gmail.com>"]
 | 
			
		||||
description = "Safe, fast and concurrent event system, inspired by the MinecraftForge event bus."
 | 
			
		||||
keywords = ["event", "safe", "fast", "concurrent", "bus"]
 | 
			
		||||
| 
						 | 
				
			
			@ -10,3 +10,10 @@ repository = "https://cybre.tech/SoniEx2/rust.eventbus"
 | 
			
		|||
[dependencies]
 | 
			
		||||
lazy_static = "1.1.0"
 | 
			
		||||
anymap = "0.12.1"
 | 
			
		||||
 | 
			
		||||
[dev-dependencies]
 | 
			
		||||
criterion = "0.2.5"
 | 
			
		||||
 | 
			
		||||
[[bench]]
 | 
			
		||||
name = "post_single_benchmark"
 | 
			
		||||
harness = false
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										25
									
								
								benches/post_single_benchmark.rs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								benches/post_single_benchmark.rs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,25 @@
 | 
			
		|||
#[macro_use]
 | 
			
		||||
extern crate criterion;
 | 
			
		||||
#[macro_use]
 | 
			
		||||
extern crate eventbus;
 | 
			
		||||
 | 
			
		||||
use criterion::Criterion;
 | 
			
		||||
use eventbus::{Event, EventBus};
 | 
			
		||||
 | 
			
		||||
struct MyEvent {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl Event for MyEvent {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
fn my_hook(_event: &mut MyEvent) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
fn criterion_benchmark(c: &mut Criterion) {
 | 
			
		||||
    let bus = EventBus::new();
 | 
			
		||||
    register_hook!(&bus, 0, MyEvent, my_hook);
 | 
			
		||||
    c.bench_function("one_hook", move |b| b.iter(|| post_event!(&bus, MyEvent, &mut MyEvent {})));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
criterion_group!(benches, criterion_benchmark);
 | 
			
		||||
criterion_main!(benches);
 | 
			
		||||
| 
						 | 
				
			
			@ -55,11 +55,11 @@ macro_rules! post_event {
 | 
			
		|||
            let handlers = $crate::get_post_targets::<$t>($b, event, id);
 | 
			
		||||
            for (_pri, fun) in handlers.iter() {
 | 
			
		||||
                fun(event);
 | 
			
		||||
                if <$t>::cancellable() && event.cancelled() {
 | 
			
		||||
                if <$t as $crate::Event>::cancellable() && <$t as $crate::Event>::cancelled(event) {
 | 
			
		||||
                    break;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            <$t>::cancellable() && event.cancelled()
 | 
			
		||||
            <$t as $crate::Event>::cancellable() && <$t as $crate::Event>::cancelled(event)
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue