File tree Expand file tree Collapse file tree 2 files changed +14
-7
lines changed Expand file tree Collapse file tree 2 files changed +14
-7
lines changed Original file line number Diff line number Diff line change 1- # crossdb-rs   
1+ # crossdb-rust   
22
33``` toml 
44[dependencies ]
@@ -31,9 +31,3 @@ fn main() -> Result<()> {
3131    Ok (())
3232}
3333``` 
34- 
35- ## TODO  
36- 
37- -  NULL value
38- -  Dynamic link crossdb
39- -  use serde to serialize/deserialize
Original file line number Diff line number Diff line change @@ -26,6 +26,7 @@ pub use value::Value;
2626
2727use  crossdb_sys:: * ; 
2828use  lru:: LruCache ; 
29+ use  serde:: de:: { value:: Error  as  DeError ,  DeserializeOwned } ; 
2930use  std:: ffi:: { CStr ,  CString } ; 
3031use  std:: fmt:: Display ; 
3132use  std:: num:: NonZeroUsize ; 
@@ -156,6 +157,18 @@ impl Query {
156157        Some ( Row  {  columns,  values } ) 
157158    } 
158159
160+     pub  fn  fetch_row_as < T :  DeserializeOwned > ( & mut  self )  -> Option < Result < T ,  DeError > >  { 
161+         self . fetch_row ( ) . map ( |row| row. deserialize ( ) ) 
162+     } 
163+ 
164+     pub  fn  fetch_rows_as < ' a ,  T :  DeserializeOwned > ( mut  self )  -> Result < Vec < T > ,  DeError >  { 
165+         let  mut  rows = Vec :: with_capacity ( self . row_count ( ) ) ; 
166+         while  let  Some ( row)  = self . fetch_row ( )  { 
167+             rows. push ( row. deserialize ( ) ?) ; 
168+         } 
169+         Ok ( rows) 
170+     } 
171+ 
159172    fn  inner_fetch_row_values ( & mut  self )  -> Option < Vec < Value < ' _ > > >  { 
160173        unsafe  { 
161174            let  row = xdb_fetch_row ( self . ptr ) ; 
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments