1313 | ot_layer_enabled | 196 ns |
1414*/
1515
16- use async_trait:: async_trait;
1716use criterion:: { criterion_group, criterion_main, Criterion } ;
1817use opentelemetry:: InstrumentationScope ;
1918use opentelemetry_appender_tracing:: layer as tracing_layer;
@@ -32,10 +31,13 @@ struct NoopExporter {
3231 enabled : bool ,
3332}
3433
35- #[ async_trait]
3634impl LogExporter for NoopExporter {
37- async fn export ( & self , _: LogBatch < ' _ > ) -> LogResult < ( ) > {
38- LogResult :: Ok ( ( ) )
35+ #[ allow( clippy:: manual_async_fn) ]
36+ fn export (
37+ & self ,
38+ _batch : LogBatch < ' _ > ,
39+ ) -> impl std:: future:: Future < Output = LogResult < ( ) > > + Send {
40+ async { LogResult :: Ok ( ( ) ) }
3941 }
4042
4143 fn event_enabled ( & self , _: opentelemetry:: logs:: Severity , _: & str , _: & str ) -> bool {
@@ -44,17 +46,17 @@ impl LogExporter for NoopExporter {
4446}
4547
4648#[ derive( Debug ) ]
47- struct NoopProcessor {
48- exporter : Box < dyn LogExporter > ,
49+ struct NoopProcessor < E : LogExporter > {
50+ exporter : E ,
4951}
5052
51- impl NoopProcessor {
52- fn new ( exporter : Box < dyn LogExporter > ) -> Self {
53+ impl < E : LogExporter > NoopProcessor < E > {
54+ fn new ( exporter : E ) -> Self {
5355 Self { exporter }
5456 }
5557}
5658
57- impl LogProcessor for NoopProcessor {
59+ impl < E : LogExporter > LogProcessor for NoopProcessor < E > {
5860 fn emit ( & self , _: & mut LogRecord , _: & InstrumentationScope ) {
5961 // no-op
6062 }
@@ -124,7 +126,7 @@ fn benchmark_no_subscriber(c: &mut Criterion) {
124126
125127fn benchmark_with_ot_layer ( c : & mut Criterion , enabled : bool , bench_name : & str ) {
126128 let exporter = NoopExporter { enabled } ;
127- let processor = NoopProcessor :: new ( Box :: new ( exporter) ) ;
129+ let processor = NoopProcessor :: new ( exporter) ;
128130 let provider = LoggerProvider :: builder ( )
129131 . with_resource (
130132 Resource :: builder_empty ( )
0 commit comments