@@ -8,13 +8,10 @@ impl Valuable for Json {
8
8
Json :: Array ( ref array) => array. as_value ( ) ,
9
9
Json :: Bool ( ref value) => value. as_value ( ) ,
10
10
Json :: Number ( ref num) => {
11
- // TODO: check correctness for this
12
11
if num. is_f64 ( ) {
13
12
Value :: F64 ( num. as_f64 ( ) . unwrap ( ) )
14
13
} else if num. is_i64 ( ) {
15
14
Value :: I64 ( num. as_i64 ( ) . unwrap ( ) )
16
- } else if num. is_u64 ( ) {
17
- Value :: U64 ( num. as_u64 ( ) . unwrap ( ) )
18
15
} else {
19
16
unreachable ! ( )
20
17
}
@@ -30,13 +27,10 @@ impl Valuable for Json {
30
27
Json :: Array ( ref array) => array. visit ( visit) ,
31
28
Json :: Bool ( ref value) => value. visit ( visit) ,
32
29
Json :: Number ( ref num) => {
33
- // TODO: check correctness for this
34
30
if num. is_f64 ( ) {
35
31
num. as_f64 ( ) . unwrap ( ) . visit ( visit)
36
32
} else if num. is_i64 ( ) {
37
33
num. as_i64 ( ) . unwrap ( ) . visit ( visit)
38
- } else if num. is_u64 ( ) {
39
- num. as_u64 ( ) . unwrap ( ) . visit ( visit)
40
34
} else {
41
35
unreachable ! ( )
42
36
}
@@ -66,3 +60,19 @@ impl Mappable for Map<String, Json> {
66
60
( len, Some ( len) )
67
61
}
68
62
}
63
+
64
+ #[ cfg( test) ]
65
+ mod test {
66
+ use crate :: { Valuable , Value } ;
67
+ use serde_json:: json;
68
+
69
+ #[ test]
70
+ fn test_json ( ) {
71
+ let j = json ! ( { "a" : 100 , "b" : 1.0 , "c" : -1 } ) ;
72
+ let jv = j. as_value ( ) ;
73
+
74
+ assert ! ( matches!( jv, Value :: Mappable ( _) ) ) ;
75
+
76
+ assert ! ( matches!( json!( 100 ) . as_value( ) , Value :: I64 ( _) ) ) ;
77
+ }
78
+ }
0 commit comments