File tree Expand file tree Collapse file tree 2 files changed +168
-75
lines changed Expand file tree Collapse file tree 2 files changed +168
-75
lines changed Original file line number Diff line number Diff line change @@ -442,3 +442,22 @@ func unsafeBytesToString(data []byte) string {
442442	sh  :=  reflect.StringHeader {Data : h .Data , Len : h .Len }
443443	return  * (* string )(unsafe .Pointer (& sh ))
444444}
445+ 
446+ // ParseBoolean parses a Boolean ValueType into a Go bool (not particularly useful, but here for completeness) 
447+ func  ParseBoolean (vbytes  []byte ) bool  {
448+ 	return  (vbytes [0 ] ==  't' ) // assumes value is already validated by Get(), etc. as signaled by jtype == Boolean 
449+ }
450+ 
451+ // ParseString parses a String ValueType into a Go string (the main parsing work is unescaping the JSON string) 
452+ func  ParseString (vbytes  []byte ) (string , error ) {
453+ 	return  "" , nil 
454+ }
455+ 
456+ // ParseNumber parses a Number ValueType into a Go float64 
457+ func  ParseNumber (vbytes  []byte ) (float64 , error ) {
458+ 	if  v , err  :=  strconv .ParseFloat (unsafeBytesToString (vbytes ), 64 ); err  !=  nil  { // TODO: use better BytesParseFloat in PR #25 
459+ 		return  0 , MalformedValueError 
460+ 	} else  {
461+ 		return  v , nil 
462+ 	}
463+ }
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments