@@ -15,15 +15,15 @@ use std::{
1515
1616use anyhow:: bail;
1717use entrace_core:: {
18- EnValue , EnValueRef , LevelContainer , LogProvider , LogProviderError , LogProviderResult ,
19- MetadataRefContainer ,
18+ EnValue , EnValueRef , LevelContainer , LogProvider , LogProviderError , LogProviderImpl ,
19+ LogProviderResult , MetadataRefContainer ,
2020} ;
2121use memchr:: memmem:: Finder ;
2222use mlua:: { ExternalError , ExternalResult , IntoLua , Lua , Table , Value } ;
2323use roaring:: RoaringBitmap ;
2424
2525use crate :: {
26- QueryError , TraceProvider ,
26+ QueryError ,
2727 filtersets:: { Filterset , Matcher , Predicate , PredicateId } ,
2828 lua_value:: { LuaValueRef , LuaValueRefRef } ,
2929} ;
@@ -873,33 +873,6 @@ pub fn en_filterset_materialize(
873873 }
874874}
875875
876- struct DynAdapter < ' a > ( & ' a dyn LogProvider ) ;
877- impl < ' a > LogProvider for DynAdapter < ' a > {
878- fn children ( & self , x : u32 ) -> Result < & [ u32 ] , LogProviderError > {
879- self . 0 . children ( x)
880- }
881-
882- fn parent ( & self , x : u32 ) -> Result < u32 , LogProviderError > {
883- self . 0 . parent ( x)
884- }
885-
886- fn attrs ( & ' _ self , x : u32 ) -> Result < Vec < ( & ' _ str , EnValueRef < ' _ > ) > , LogProviderError > {
887- self . 0 . attrs ( x)
888- }
889-
890- fn header ( & ' _ self , x : u32 ) -> Result < entrace_core:: Header < ' _ > , LogProviderError > {
891- self . 0 . header ( x)
892- }
893-
894- fn meta ( & ' _ self , x : u32 ) -> Result < MetadataRefContainer < ' _ > , LogProviderError > {
895- self . 0 . meta ( x)
896- }
897-
898- fn len ( & self ) -> usize {
899- self . 0 . len ( )
900- }
901- }
902-
903876pub struct JoinCtx {
904877 is_joining : AtomicBool ,
905878 threads_joined : AtomicUsize ,
@@ -942,7 +915,6 @@ pub fn en_join(joinable: Arc<JoinCtx>) -> impl Fn(Table) -> LogProviderResult<Ve
942915 Ok ( old_results)
943916 }
944917}
945-
946918macro_rules! lua_setup_with_wrappers {
947919 ( $lua: expr, $trace: expr, $finder_cache: expr, $join_ctx: expr, $range: expr, $lua_wrap: ident, $lua_wrap2: ident) => {
948920 let globals = $lua. globals( ) ;
@@ -1066,7 +1038,7 @@ impl LuaEvalState {
10661038 }
10671039}
10681040pub fn setup_lua_on_arc_rwlock (
1069- lua : & mut Lua , trace : Arc < RwLock < TraceProvider > > , state : LuaEvalState ,
1041+ lua : & mut Lua , trace : Arc < RwLock < LogProviderImpl > > , state : LuaEvalState ,
10701042) -> Result < ( ) , mlua:: Error > {
10711043 /// INPUT a Fn(impl LogProvider) -> Fn($arg) -> Result<T,E>
10721044 /// OUTPUT a Fn(Arc<RwLock<Box<dyn LogProvider>>> -> Fn(Lua, $arg) -> mlua::Result<T>
@@ -1075,8 +1047,7 @@ pub fn setup_lua_on_arc_rwlock(
10751047 let tp = $trace_provider. clone( ) ;
10761048 move |_lua: & Lua , a: $arg| {
10771049 let log = tp. read( ) . unwrap( ) ;
1078- let adapter = DynAdapter ( & * * log) ;
1079- $fn( & adapter) ( a) . map_err( |x| x. into_lua_err( ) )
1050+ $fn( & * log) ( a) . map_err( |x| x. into_lua_err( ) )
10801051 }
10811052 } } ;
10821053 }
@@ -1088,8 +1059,7 @@ pub fn setup_lua_on_arc_rwlock(
10881059 let tp = $trace_provider. clone( ) ;
10891060 move |lua: & Lua , a: $arg| {
10901061 let log = tp. read( ) . unwrap( ) ;
1091- let adapter = DynAdapter ( & * * log) ;
1092- $fn( & adapter, lua) ( a)
1062+ $fn( & * log, lua) ( a)
10931063 }
10941064 } } ;
10951065 }
@@ -1099,8 +1069,7 @@ pub fn setup_lua_on_arc_rwlock(
10991069 "en_contains_anywhere" ,
11001070 lua. create_function ( move |_lua : & Lua , ( id, needle) : ( u32 , String ) | {
11011071 let log = t. read ( ) . unwrap ( ) ;
1102- let adapter = DynAdapter ( & * * log) ;
1103- en_contains_anywhere ( & adapter, finder_cache. clone ( ) , reusable_buf. clone ( ) ) ( ( id, needle) )
1072+ en_contains_anywhere ( & * log, finder_cache. clone ( ) , reusable_buf. clone ( ) ) ( ( id, needle) )
11041073 . map_err ( to_lua_err)
11051074 } ) ?,
11061075 ) ?;
@@ -1110,17 +1079,14 @@ pub fn setup_lua_on_arc_rwlock(
11101079}
11111080
11121081pub fn setup_lua_no_lock (
1113- lua : & mut Lua , trace : Arc < TraceProvider > , state : LuaEvalState ,
1082+ lua : & mut Lua , trace : Arc < LogProviderImpl > , state : LuaEvalState ,
11141083) -> Result < ( ) , mlua:: Error > {
11151084 /// INPUT a Fn(impl LogProvider) -> Fn($arg) -> Result<T,E>
11161085 /// OUTPUT a Fn(Arc<RwLock<Box<dyn LogProvider>>> -> Fn(Lua, $arg) -> mlua::Result<T>
11171086 macro_rules! lua_wrap {
11181087 ( $trace_provider: expr, $arg: ty, $fn: expr) => { {
11191088 let tp = $trace_provider. clone( ) ;
1120- move |_lua: & Lua , a: $arg| {
1121- let adapter = DynAdapter ( & * * tp) ;
1122- $fn( & adapter) ( a) . map_err( |x| x. into_lua_err( ) )
1123- }
1089+ move |_lua: & Lua , a: $arg| $fn( & * tp) ( a) . map_err( |x| x. into_lua_err( ) )
11241090 } } ;
11251091 }
11261092
@@ -1129,19 +1095,15 @@ pub fn setup_lua_no_lock(
11291095 macro_rules! lua_wrap2 {
11301096 ( $trace_provider: expr, $arg: ty, $fn: expr) => { {
11311097 let tp = $trace_provider. clone( ) ;
1132- move |lua: & Lua , a: $arg| {
1133- let adapter = DynAdapter ( & * * tp) ;
1134- $fn( & adapter, lua) ( a)
1135- }
1098+ move |lua: & Lua , a: $arg| $fn( & * tp, lua) ( a)
11361099 } } ;
11371100 }
11381101 let LuaEvalState { join_ctx, range, finder_cache, reusable_buf } = state;
11391102 let t = trace. clone ( ) ;
11401103 lua. globals ( ) . set (
11411104 "en_contains_anywhere" ,
11421105 lua. create_function ( move |_lua : & Lua , ( id, needle) : ( u32 , String ) | {
1143- let adapter = DynAdapter ( & * * t) ;
1144- en_contains_anywhere ( & adapter, finder_cache. clone ( ) , reusable_buf. clone ( ) ) ( ( id, needle) )
1106+ en_contains_anywhere ( & * t, finder_cache. clone ( ) , reusable_buf. clone ( ) ) ( ( id, needle) )
11451107 . map_err ( to_lua_err)
11461108 } ) ?,
11471109 ) ?;
0 commit comments