@@ -66,10 +66,13 @@ impl TestStore {
6666}
6767
6868impl KVStore for TestStore {
69- fn read ( & self , namespace : & str , key : & str ) -> std:: io:: Result < Box < dyn Read > > {
69+ type Reader = TestReader ;
70+ type Writer = TestWriter ;
71+
72+ fn read ( & self , namespace : & str , key : & str ) -> std:: io:: Result < Self :: Reader > {
7073 if let Some ( outer_ref) = self . persisted_bytes . read ( ) . unwrap ( ) . get ( namespace) {
7174 if let Some ( inner_ref) = outer_ref. get ( key) {
72- Ok ( Box :: new ( TestReader :: new ( Arc :: clone ( inner_ref) ) ) as Box < dyn Read > )
75+ Ok ( TestReader :: new ( Arc :: clone ( inner_ref) ) )
7376 } else {
7477 let msg = format ! ( "Key not found: {}" , key) ;
7578 Err ( std:: io:: Error :: new ( std:: io:: ErrorKind :: NotFound , msg) )
@@ -80,11 +83,11 @@ impl KVStore for TestStore {
8083 }
8184 }
8285
83- fn write ( & self , namespace : & str , key : & str ) -> std:: io:: Result < Box < dyn TransactionalWrite > > {
86+ fn write ( & self , namespace : & str , key : & str ) -> std:: io:: Result < Self :: Writer > {
8487 let mut guard = self . persisted_bytes . write ( ) . unwrap ( ) ;
8588 let outer_e = guard. entry ( namespace. to_string ( ) ) . or_insert ( HashMap :: new ( ) ) ;
8689 let inner_e = outer_e. entry ( key. to_string ( ) ) . or_insert ( Arc :: new ( RwLock :: new ( Vec :: new ( ) ) ) ) ;
87- Ok ( Box :: new ( TestWriter :: new ( Arc :: clone ( & inner_e) , Arc :: clone ( & self . did_persist ) ) ) )
90+ Ok ( TestWriter :: new ( Arc :: clone ( & inner_e) , Arc :: clone ( & self . did_persist ) ) )
8891 }
8992
9093 fn remove ( & self , namespace : & str , key : & str ) -> std:: io:: Result < bool > {
0 commit comments