mirror of
https://github.com/vlang/v.git
synced 2025-09-17 11:26:17 -04:00
parent
19be2283f0
commit
1f8f6d0e7d
@ -186,7 +186,8 @@ fn (e &Encoder) encode_value_with_level[T](val T, level int, mut buf []u8) ! {
|
|||||||
} $else $if T is $enum {
|
} $else $if T is $enum {
|
||||||
str_int := int(val).str()
|
str_int := int(val).str()
|
||||||
unsafe { buf.push_many(str_int.str, str_int.len) }
|
unsafe { buf.push_many(str_int.str, str_int.len) }
|
||||||
} $else $if T is $int || T is bool {
|
} $else $if T is $int || T is bool || T is i32 {
|
||||||
|
// bug? `i32` not in `$int`?
|
||||||
str_int := val.str()
|
str_int := val.str()
|
||||||
unsafe { buf.push_many(str_int.str, str_int.len) }
|
unsafe { buf.push_many(str_int.str, str_int.len) }
|
||||||
} $else $if T is $float {
|
} $else $if T is $float {
|
||||||
|
@ -101,7 +101,7 @@ pub fn (f Any) u8() u8 {
|
|||||||
u8 {
|
u8 {
|
||||||
return f
|
return f
|
||||||
}
|
}
|
||||||
u16, u32, i8, i16, i32, int, i64, f32, f64, bool {
|
u16, u32, u64, i8, i16, i32, int, i64, f32, f64, bool {
|
||||||
return u8(u16(f))
|
return u8(u16(f))
|
||||||
}
|
}
|
||||||
string {
|
string {
|
||||||
@ -113,6 +113,42 @@ pub fn (f Any) u8() u8 {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// u16 uses `Any` as a 16-bit unsigned integer.
|
||||||
|
pub fn (f Any) u16() u16 {
|
||||||
|
match f {
|
||||||
|
u16 {
|
||||||
|
return f
|
||||||
|
}
|
||||||
|
u8, u32, u64, i8, i16, i32, int, i64, f32, f64, bool {
|
||||||
|
return u16(f)
|
||||||
|
}
|
||||||
|
string {
|
||||||
|
return f.u16()
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// u32 uses `Any` as a 32-bit unsigned integer.
|
||||||
|
pub fn (f Any) u32() u32 {
|
||||||
|
match f {
|
||||||
|
u32 {
|
||||||
|
return f
|
||||||
|
}
|
||||||
|
u8, u16, u64, i8, i16, i32, int, i64, f32, f64, bool {
|
||||||
|
return u32(f)
|
||||||
|
}
|
||||||
|
string {
|
||||||
|
return f.u32()
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// u64 uses `Any` as a 64-bit unsigned integer.
|
// u64 uses `Any` as a 64-bit unsigned integer.
|
||||||
pub fn (f Any) u64() u64 {
|
pub fn (f Any) u64() u64 {
|
||||||
match f {
|
match f {
|
||||||
|
@ -1,9 +1,16 @@
|
|||||||
import x.json2 as json
|
import x.json2 as json
|
||||||
|
|
||||||
const sample_data = {
|
const sample_data = {
|
||||||
'int': json.Any(int(1))
|
'u8': json.Any(u8(1))
|
||||||
'i64': json.Any(i64(128))
|
'u16': json.Any(u16(2))
|
||||||
'f32': json.Any(f32(2.0))
|
'u32': json.Any(u32(3))
|
||||||
|
'u64': json.Any(u64(4))
|
||||||
|
'i8': json.Any(i8(5))
|
||||||
|
'i16': json.Any(i16(6))
|
||||||
|
'i32': json.Any(i32(7))
|
||||||
|
'int': json.Any(int(8))
|
||||||
|
'i64': json.Any(i64(9))
|
||||||
|
'f32': json.Any(f32(2.3))
|
||||||
'f64': json.Any(f64(1.283))
|
'f64': json.Any(f64(1.283))
|
||||||
'bool': json.Any(false)
|
'bool': json.Any(false)
|
||||||
'str': json.Any('test')
|
'str': json.Any('test')
|
||||||
@ -23,9 +30,16 @@ fn is_null(f json.Any) bool {
|
|||||||
|
|
||||||
fn test_f32() {
|
fn test_f32() {
|
||||||
// valid conversions
|
// valid conversions
|
||||||
assert sample_data['int'] or { 0 }.f32() == 1.0
|
assert sample_data['u8'] or { 0 }.f32() == 1.0
|
||||||
assert sample_data['i64'] or { 0 }.f32() == 128.0
|
assert sample_data['u16'] or { 0 }.f32() == 2.0
|
||||||
assert sample_data['f32'] or { 0 }.f32() == 2.0
|
assert sample_data['u32'] or { 0 }.f32() == 3.0
|
||||||
|
assert sample_data['u64'] or { 0 }.f32() == 4.0
|
||||||
|
assert sample_data['i8'] or { 0 }.f32() == 5.0
|
||||||
|
assert sample_data['i16'] or { 0 }.f32() == 6.0
|
||||||
|
assert sample_data['i32'] or { 0 }.f32() == 7.0
|
||||||
|
assert sample_data['int'] or { 0 }.f32() == 8.0
|
||||||
|
assert sample_data['i64'] or { 0 }.f32() == 9.0
|
||||||
|
assert sample_data['f32'] or { 0 }.f32() == 2.3
|
||||||
assert sample_data['f64'] or { 0 }.f32() == 1.2829999923706055
|
assert sample_data['f64'] or { 0 }.f32() == 1.2829999923706055
|
||||||
// invalid conversions
|
// invalid conversions
|
||||||
assert sample_data['bool'] or { 0 }.f32() == 0.0
|
assert sample_data['bool'] or { 0 }.f32() == 0.0
|
||||||
@ -37,9 +51,16 @@ fn test_f32() {
|
|||||||
|
|
||||||
fn test_f64() {
|
fn test_f64() {
|
||||||
// valid conversions
|
// valid conversions
|
||||||
assert sample_data['int'] or { 0 }.f64() == 1.0
|
assert sample_data['u8'] or { 0 }.f64() == 1.0
|
||||||
assert sample_data['i64'] or { 0 }.f64() == 128.0
|
assert sample_data['u16'] or { 0 }.f64() == 2.0
|
||||||
assert sample_data['f32'] or { 0 }.f64() == 2.0
|
assert sample_data['u32'] or { 0 }.f64() == 3.0
|
||||||
|
assert sample_data['u64'] or { 0 }.f64() == 4.0
|
||||||
|
assert sample_data['i8'] or { 0 }.f64() == 5.0
|
||||||
|
assert sample_data['i16'] or { 0 }.f64() == 6.0
|
||||||
|
assert sample_data['i32'] or { 0 }.f64() == 7.0
|
||||||
|
assert sample_data['int'] or { 0 }.f64() == 8.0
|
||||||
|
assert sample_data['i64'] or { 0 }.f64() == 9.0
|
||||||
|
assert sample_data['f32'] or { 0 }.f64() == 2.299999952316284
|
||||||
assert sample_data['f64'] or { 0 }.f64() == 1.283
|
assert sample_data['f64'] or { 0 }.f64() == 1.283
|
||||||
// invalid conversions
|
// invalid conversions
|
||||||
assert sample_data['bool'] or { 0 }.f64() == 0.0
|
assert sample_data['bool'] or { 0 }.f64() == 0.0
|
||||||
@ -49,10 +70,80 @@ fn test_f64() {
|
|||||||
assert sample_data['obj'] or { 0 }.f64() == 0.0
|
assert sample_data['obj'] or { 0 }.f64() == 0.0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn test_i8() {
|
||||||
|
// valid conversions
|
||||||
|
assert sample_data['u8'] or { 0 }.i8() == 1
|
||||||
|
assert sample_data['u16'] or { 0 }.i8() == 2
|
||||||
|
assert sample_data['u32'] or { 0 }.i8() == 3
|
||||||
|
assert sample_data['u64'] or { 0 }.i8() == 4
|
||||||
|
assert sample_data['i8'] or { 0 }.i8() == 5
|
||||||
|
assert sample_data['i16'] or { 0 }.i8() == 6
|
||||||
|
assert sample_data['i32'] or { 0 }.i8() == 7
|
||||||
|
assert sample_data['int'] or { 0 }.i8() == 8
|
||||||
|
assert sample_data['i64'] or { 0 }.i8() == 9
|
||||||
|
assert sample_data['f32'] or { 0 }.i8() == 2
|
||||||
|
assert sample_data['f64'] or { 0 }.i8() == 1
|
||||||
|
assert json.Any(true).i8() == 1
|
||||||
|
assert json.Any('123').i8() == 123
|
||||||
|
// invalid conversions
|
||||||
|
assert sample_data['null'] or { 0 }.i8() == 0
|
||||||
|
assert sample_data['arr'] or { 0 }.i8() == 0
|
||||||
|
assert sample_data['obj'] or { 0 }.i8() == 0
|
||||||
|
}
|
||||||
|
|
||||||
|
fn test_i16() {
|
||||||
|
// valid conversions
|
||||||
|
assert sample_data['u8'] or { 0 }.i16() == 1
|
||||||
|
assert sample_data['u16'] or { 0 }.i16() == 2
|
||||||
|
assert sample_data['u32'] or { 0 }.i16() == 3
|
||||||
|
assert sample_data['u64'] or { 0 }.i16() == 4
|
||||||
|
assert sample_data['i8'] or { 0 }.i16() == 5
|
||||||
|
assert sample_data['i16'] or { 0 }.i16() == 6
|
||||||
|
assert sample_data['i32'] or { 0 }.i16() == 7
|
||||||
|
assert sample_data['int'] or { 0 }.i16() == 8
|
||||||
|
assert sample_data['i64'] or { 0 }.i16() == 9
|
||||||
|
assert sample_data['f32'] or { 0 }.i16() == 2
|
||||||
|
assert sample_data['f64'] or { 0 }.i16() == 1
|
||||||
|
assert json.Any(true).i16() == 1
|
||||||
|
assert json.Any('123').i16() == 123
|
||||||
|
// invalid conversions
|
||||||
|
assert sample_data['null'] or { 0 }.i16() == 0
|
||||||
|
assert sample_data['arr'] or { 0 }.i16() == 0
|
||||||
|
assert sample_data['obj'] or { 0 }.i16() == 0
|
||||||
|
}
|
||||||
|
|
||||||
|
fn test_i32() {
|
||||||
|
// valid conversions
|
||||||
|
assert sample_data['u8'] or { 0 }.i32() == 1
|
||||||
|
assert sample_data['u16'] or { 0 }.i32() == 2
|
||||||
|
assert sample_data['u32'] or { 0 }.i32() == 3
|
||||||
|
assert sample_data['u64'] or { 0 }.i32() == 4
|
||||||
|
assert sample_data['i8'] or { 0 }.i32() == 5
|
||||||
|
assert sample_data['i16'] or { 0 }.i32() == 6
|
||||||
|
assert sample_data['i32'] or { 0 }.i32() == 7
|
||||||
|
assert sample_data['int'] or { 0 }.i32() == 8
|
||||||
|
assert sample_data['i64'] or { 0 }.i32() == 9
|
||||||
|
assert sample_data['f32'] or { 0 }.i32() == 2
|
||||||
|
assert sample_data['f64'] or { 0 }.i32() == 1
|
||||||
|
assert json.Any(true).i32() == 1
|
||||||
|
assert json.Any('123').i32() == 123
|
||||||
|
// invalid conversions
|
||||||
|
assert sample_data['null'] or { 0 }.i32() == 0
|
||||||
|
assert sample_data['arr'] or { 0 }.i32() == 0
|
||||||
|
assert sample_data['obj'] or { 0 }.i32() == 0
|
||||||
|
}
|
||||||
|
|
||||||
fn test_int() {
|
fn test_int() {
|
||||||
// valid conversions
|
// valid conversions
|
||||||
assert sample_data['int'] or { 0 }.int() == 1
|
assert sample_data['u8'] or { 0 }.int() == 1
|
||||||
assert sample_data['i64'] or { 0 }.int() == 128
|
assert sample_data['u16'] or { 0 }.int() == 2
|
||||||
|
assert sample_data['u32'] or { 0 }.int() == 3
|
||||||
|
assert sample_data['u64'] or { 0 }.int() == 4
|
||||||
|
assert sample_data['i8'] or { 0 }.int() == 5
|
||||||
|
assert sample_data['i16'] or { 0 }.int() == 6
|
||||||
|
assert sample_data['i32'] or { 0 }.int() == 7
|
||||||
|
assert sample_data['int'] or { 0 }.int() == 8
|
||||||
|
assert sample_data['i64'] or { 0 }.int() == 9
|
||||||
assert sample_data['f32'] or { 0 }.int() == 2
|
assert sample_data['f32'] or { 0 }.int() == 2
|
||||||
assert sample_data['f64'] or { 0 }.int() == 1
|
assert sample_data['f64'] or { 0 }.int() == 1
|
||||||
assert json.Any(true).int() == 1
|
assert json.Any(true).int() == 1
|
||||||
@ -65,8 +156,15 @@ fn test_int() {
|
|||||||
|
|
||||||
fn test_i64() {
|
fn test_i64() {
|
||||||
// valid conversions
|
// valid conversions
|
||||||
assert sample_data['int'] or { 0 }.i64() == 1
|
assert sample_data['u8'] or { 0 }.i64() == 1
|
||||||
assert sample_data['i64'] or { 0 }.i64() == 128
|
assert sample_data['u16'] or { 0 }.i64() == 2
|
||||||
|
assert sample_data['u32'] or { 0 }.i64() == 3
|
||||||
|
assert sample_data['u64'] or { 0 }.i64() == 4
|
||||||
|
assert sample_data['i8'] or { 0 }.i64() == 5
|
||||||
|
assert sample_data['i16'] or { 0 }.i64() == 6
|
||||||
|
assert sample_data['i32'] or { 0 }.i64() == 7
|
||||||
|
assert sample_data['int'] or { 0 }.i64() == 8
|
||||||
|
assert sample_data['i64'] or { 0 }.i64() == 9
|
||||||
assert sample_data['f32'] or { 0 }.i64() == 2
|
assert sample_data['f32'] or { 0 }.i64() == 2
|
||||||
assert sample_data['f64'] or { 0 }.i64() == 1
|
assert sample_data['f64'] or { 0 }.i64() == 1
|
||||||
assert json.Any(true).i64() == 1
|
assert json.Any(true).i64() == 1
|
||||||
@ -77,10 +175,101 @@ fn test_i64() {
|
|||||||
assert sample_data['obj'] or { 0 }.i64() == 0
|
assert sample_data['obj'] or { 0 }.i64() == 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn test_u8() {
|
||||||
|
// valid conversions
|
||||||
|
assert sample_data['u8'] or { 0 }.u8() == 1
|
||||||
|
assert sample_data['u16'] or { 0 }.u8() == 2
|
||||||
|
assert sample_data['u32'] or { 0 }.u8() == 3
|
||||||
|
assert sample_data['u64'] or { 0 }.u8() == 4
|
||||||
|
assert sample_data['i8'] or { 0 }.u8() == 5
|
||||||
|
assert sample_data['i16'] or { 0 }.u8() == 6
|
||||||
|
assert sample_data['i32'] or { 0 }.u8() == 7
|
||||||
|
assert sample_data['int'] or { 0 }.u8() == 8
|
||||||
|
assert sample_data['i64'] or { 0 }.u8() == 9
|
||||||
|
assert sample_data['f32'] or { 0 }.u8() == 2
|
||||||
|
assert sample_data['f64'] or { 0 }.u8() == 1
|
||||||
|
assert json.Any(true).u8() == 1
|
||||||
|
assert json.Any('123').u8() == 123
|
||||||
|
// invalid conversions
|
||||||
|
assert sample_data['null'] or { 0 }.u8() == 0
|
||||||
|
assert sample_data['arr'] or { 0 }.u8() == 0
|
||||||
|
assert sample_data['obj'] or { 0 }.u8() == 0
|
||||||
|
}
|
||||||
|
|
||||||
|
fn test_u16() {
|
||||||
|
// valid conversions
|
||||||
|
assert sample_data['u8'] or { 0 }.u16() == 1
|
||||||
|
assert sample_data['u16'] or { 0 }.u16() == 2
|
||||||
|
assert sample_data['u32'] or { 0 }.u16() == 3
|
||||||
|
assert sample_data['u64'] or { 0 }.u16() == 4
|
||||||
|
assert sample_data['i8'] or { 0 }.u16() == 5
|
||||||
|
assert sample_data['i16'] or { 0 }.u16() == 6
|
||||||
|
assert sample_data['i32'] or { 0 }.u16() == 7
|
||||||
|
assert sample_data['int'] or { 0 }.u16() == 8
|
||||||
|
assert sample_data['i64'] or { 0 }.u16() == 9
|
||||||
|
assert sample_data['f32'] or { 0 }.u16() == 2
|
||||||
|
assert sample_data['f64'] or { 0 }.u16() == 1
|
||||||
|
assert json.Any(true).u16() == 1
|
||||||
|
assert json.Any('123').u16() == 123
|
||||||
|
// invalid conversions
|
||||||
|
assert sample_data['null'] or { 0 }.u16() == 0
|
||||||
|
assert sample_data['arr'] or { 0 }.u16() == 0
|
||||||
|
assert sample_data['obj'] or { 0 }.u16() == 0
|
||||||
|
}
|
||||||
|
|
||||||
|
fn test_u32() {
|
||||||
|
// valid conversions
|
||||||
|
assert sample_data['u8'] or { 0 }.u32() == 1
|
||||||
|
assert sample_data['u16'] or { 0 }.u32() == 2
|
||||||
|
assert sample_data['u32'] or { 0 }.u32() == 3
|
||||||
|
assert sample_data['u64'] or { 0 }.u32() == 4
|
||||||
|
assert sample_data['i8'] or { 0 }.u32() == 5
|
||||||
|
assert sample_data['i16'] or { 0 }.u32() == 6
|
||||||
|
assert sample_data['i32'] or { 0 }.u32() == 7
|
||||||
|
assert sample_data['int'] or { 0 }.u32() == 8
|
||||||
|
assert sample_data['i64'] or { 0 }.u32() == 9
|
||||||
|
assert sample_data['f32'] or { 0 }.u32() == 2
|
||||||
|
assert sample_data['f64'] or { 0 }.u32() == 1
|
||||||
|
assert json.Any(true).u32() == 1
|
||||||
|
assert json.Any('123').u32() == 123
|
||||||
|
// invalid conversions
|
||||||
|
assert sample_data['null'] or { 0 }.u32() == 0
|
||||||
|
assert sample_data['arr'] or { 0 }.u32() == 0
|
||||||
|
assert sample_data['obj'] or { 0 }.u32() == 0
|
||||||
|
}
|
||||||
|
|
||||||
|
fn test_u64() {
|
||||||
|
// valid conversions
|
||||||
|
assert sample_data['u8'] or { 0 }.u64() == 1
|
||||||
|
assert sample_data['u16'] or { 0 }.u64() == 2
|
||||||
|
assert sample_data['u32'] or { 0 }.u64() == 3
|
||||||
|
assert sample_data['u64'] or { 0 }.u64() == 4
|
||||||
|
assert sample_data['i8'] or { 0 }.u64() == 5
|
||||||
|
assert sample_data['i16'] or { 0 }.u64() == 6
|
||||||
|
assert sample_data['i32'] or { 0 }.u64() == 7
|
||||||
|
assert sample_data['int'] or { 0 }.u64() == 8
|
||||||
|
assert sample_data['i64'] or { 0 }.u64() == 9
|
||||||
|
assert sample_data['f32'] or { 0 }.u64() == 2
|
||||||
|
assert sample_data['f64'] or { 0 }.u64() == 1
|
||||||
|
assert json.Any(true).u64() == 1
|
||||||
|
assert json.Any('123').u64() == 123
|
||||||
|
// invalid conversions
|
||||||
|
assert sample_data['null'] or { 0 }.u64() == 0
|
||||||
|
assert sample_data['arr'] or { 0 }.u64() == 0
|
||||||
|
assert sample_data['obj'] or { 0 }.u64() == 0
|
||||||
|
}
|
||||||
|
|
||||||
fn test_as_map() {
|
fn test_as_map() {
|
||||||
assert sample_data['int'] or { 0 }.as_map()['0'] or { 0 }.int() == 1
|
assert sample_data['u8'] or { 0 }.as_map()['0'] or { 0 }.u8() == 1
|
||||||
assert sample_data['i64'] or { 0 }.as_map()['0'] or { 0 }.i64() == 128.0
|
assert sample_data['u16'] or { 0 }.as_map()['0'] or { 0 }.u16() == 2
|
||||||
assert sample_data['f32'] or { 0 }.as_map()['0'] or { 0 }.f32() == 2.0
|
assert sample_data['u32'] or { 0 }.as_map()['0'] or { 0 }.u32() == 3
|
||||||
|
assert sample_data['u64'] or { 0 }.as_map()['0'] or { 0 }.u64() == 4
|
||||||
|
assert sample_data['i8'] or { 0 }.as_map()['0'] or { 0 }.i8() == 5
|
||||||
|
assert sample_data['i16'] or { 0 }.as_map()['0'] or { 0 }.i16() == 6
|
||||||
|
assert sample_data['i32'] or { 0 }.as_map()['0'] or { 0 }.i32() == 7
|
||||||
|
assert sample_data['int'] or { 0 }.as_map()['0'] or { 0 }.int() == 8
|
||||||
|
assert sample_data['i64'] or { 0 }.as_map()['0'] or { 0 }.i64() == 9
|
||||||
|
assert sample_data['f32'] or { 0 }.as_map()['0'] or { 0 }.f32() == 2.3
|
||||||
assert sample_data['f64'] or { 0 }.as_map()['0'] or { 0 }.f64() == 1.283
|
assert sample_data['f64'] or { 0 }.as_map()['0'] or { 0 }.f64() == 1.283
|
||||||
assert sample_data['bool'] or { 0 }.as_map()['0'] or { 0 }.bool() == false
|
assert sample_data['bool'] or { 0 }.as_map()['0'] or { 0 }.bool() == false
|
||||||
assert sample_data['str'] or { 0 }.as_map()['0'] or { 0 }.str() == 'test'
|
assert sample_data['str'] or { 0 }.as_map()['0'] or { 0 }.str() == 'test'
|
||||||
@ -99,9 +288,16 @@ fn test_as_map_of_strings() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn test_arr() {
|
fn test_arr() {
|
||||||
assert sample_data['int'] or { 0 }.arr()[0].int() == 1
|
assert sample_data['u8'] or { 0 }.arr()[0].u8() == 1
|
||||||
assert sample_data['i64'] or { 0 }.arr()[0].i64() == 128.0
|
assert sample_data['u16'] or { 0 }.arr()[0].u16() == 2
|
||||||
assert sample_data['f32'] or { 0 }.arr()[0].f32() == 2.0
|
assert sample_data['u32'] or { 0 }.arr()[0].u32() == 3
|
||||||
|
assert sample_data['u64'] or { 0 }.arr()[0].u64() == 4
|
||||||
|
assert sample_data['i8'] or { 0 }.arr()[0].i8() == 5
|
||||||
|
assert sample_data['i16'] or { 0 }.arr()[0].i16() == 6
|
||||||
|
assert sample_data['i32'] or { 0 }.arr()[0].i32() == 7
|
||||||
|
assert sample_data['int'] or { 0 }.arr()[0].int() == 8
|
||||||
|
assert sample_data['i64'] or { 0 }.arr()[0].i64() == 9
|
||||||
|
assert sample_data['f32'] or { 0 }.arr()[0].f32() == 2.3
|
||||||
assert sample_data['f64'] or { 0 }.arr()[0].f64() == 1.283
|
assert sample_data['f64'] or { 0 }.arr()[0].f64() == 1.283
|
||||||
assert sample_data['bool'] or { 0 }.arr()[0].bool() == false
|
assert sample_data['bool'] or { 0 }.arr()[0].bool() == false
|
||||||
assert sample_data['str'] or { 0 }.arr()[0].str() == 'test'
|
assert sample_data['str'] or { 0 }.arr()[0].str() == 'test'
|
||||||
@ -114,6 +310,13 @@ fn test_bool() {
|
|||||||
// valid conversions
|
// valid conversions
|
||||||
assert sample_data['bool'] or { 0 }.bool() == false
|
assert sample_data['bool'] or { 0 }.bool() == false
|
||||||
assert json.Any('true').bool() == true
|
assert json.Any('true').bool() == true
|
||||||
|
assert sample_data['u8'] or { 0 }.bool() == true
|
||||||
|
assert sample_data['u16'] or { 0 }.bool() == true
|
||||||
|
assert sample_data['u32'] or { 0 }.bool() == true
|
||||||
|
assert sample_data['u64'] or { 0 }.bool() == true
|
||||||
|
assert sample_data['i8'] or { 0 }.bool() == true
|
||||||
|
assert sample_data['i16'] or { 0 }.bool() == true
|
||||||
|
assert sample_data['i32'] or { 0 }.bool() == true
|
||||||
assert sample_data['int'] or { 0 }.bool() == true
|
assert sample_data['int'] or { 0 }.bool() == true
|
||||||
assert sample_data['i64'] or { 0 }.bool() == true
|
assert sample_data['i64'] or { 0 }.bool() == true
|
||||||
assert sample_data['f32'] or { 0 }.bool() == true
|
assert sample_data['f32'] or { 0 }.bool() == true
|
||||||
@ -125,13 +328,20 @@ fn test_bool() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn test_str() {
|
fn test_str() {
|
||||||
assert sample_data['int'] or { 0 }.str() == '1'
|
assert sample_data['u8'] or { 0 }.str() == '1'
|
||||||
assert sample_data['i64'] or { 0 }.str() == '128'
|
assert sample_data['u16'] or { 0 }.str() == '2'
|
||||||
assert sample_data['f32'] or { 0 }.str() == '2'
|
assert sample_data['u32'] or { 0 }.str() == '3'
|
||||||
|
assert sample_data['u64'] or { 0 }.str() == '4'
|
||||||
|
assert sample_data['i8'] or { 0 }.str() == '5'
|
||||||
|
assert sample_data['i16'] or { 0 }.str() == '6'
|
||||||
|
assert sample_data['i32'] or { 0 }.str() == '7'
|
||||||
|
assert sample_data['int'] or { 0 }.str() == '8'
|
||||||
|
assert sample_data['i64'] or { 0 }.str() == '9'
|
||||||
|
assert sample_data['f32'] or { 0 }.str() == '2.299999952316284'
|
||||||
assert sample_data['f64'] or { 0 }.str() == '1.283'
|
assert sample_data['f64'] or { 0 }.str() == '1.283'
|
||||||
assert sample_data['bool'] or { 0 }.str() == 'false'
|
assert sample_data['bool'] or { 0 }.str() == 'false'
|
||||||
assert sample_data['str'] or { 0 }.str() == 'test'
|
assert sample_data['str'] or { 0 }.str() == 'test'
|
||||||
assert sample_data['null'] or { 0 }.str() == 'null'
|
assert sample_data['null'] or { 0 }.str() == 'null'
|
||||||
assert sample_data['arr'] or { 'not lol' }.str() == '["lol"]'
|
assert sample_data['arr'] or { 'not lol' }.str() == '["lol"]'
|
||||||
assert sample_data.str() == '{"int":1,"i64":128,"f32":2,"f64":1.283,"bool":false,"str":"test","null":null,"arr":["lol"],"obj":{"foo":10}}'
|
assert sample_data.str() == '{"u8":1,"u16":2,"u32":3,"u64":4,"i8":5,"i16":6,"i32":7,"int":8,"i64":9,"f32":2.299999952316284,"f64":1.283,"bool":false,"str":"test","null":null,"arr":["lol"],"obj":{"foo":10}}'
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user