deserialize_primitives.adl
1 /* 2 namespace: Compile 3 expectation: Pass 4 */ 5 6 program test.alpha { 7 // Test Deserialize::from_bits for primitive types (non-raw includes metadata) 8 transition main() -> ( 9 bool, u8, u16, u32, u64, u128, 10 i8, i16, i32, i64, i128, 11 field, group, scalar, address 12 ) { 13 // Create bit arrays for deserialization (non-raw sizes with metadata) 14 let bool_bits: [bool; 27] = [true; 27]; 15 let u8_bits: [bool; 34] = [true; 34]; 16 let u16_bits: [bool; 42] = [true; 42]; 17 let u32_bits: [bool; 58] = [true; 58]; 18 let u64_bits: [bool; 90] = [true; 90]; 19 let u128_bits: [bool; 154] = [true; 154]; 20 let i8_bits: [bool; 34] = [false; 34]; 21 let i16_bits: [bool; 42] = [false; 42]; 22 let i32_bits: [bool; 58] = [false; 58]; 23 let i64_bits: [bool; 90] = [false; 90]; 24 let i128_bits: [bool; 154] = [false; 154]; 25 let field_bits: [bool; 279] = [true; 279]; 26 let group_bits: [bool; 279] = [false; 279]; 27 let scalar_bits: [bool; 277] = [true; 277]; 28 let addr_bits: [bool; 279] = [false; 279]; 29 30 // Deserialize from bits 31 let b: bool = Deserialize::from_bits::[bool](bool_bits); 32 let u8_val: u8 = Deserialize::from_bits::[u8](u8_bits); 33 let u16_val: u16 = Deserialize::from_bits::[u16](u16_bits); 34 let u32_val: u32 = Deserialize::from_bits::[u32](u32_bits); 35 let u64_val: u64 = Deserialize::from_bits::[u64](u64_bits); 36 let u128_val: u128 = Deserialize::from_bits::[u128](u128_bits); 37 let i8_val: i8 = Deserialize::from_bits::[i8](i8_bits); 38 let i16_val: i16 = Deserialize::from_bits::[i16](i16_bits); 39 let i32_val: i32 = Deserialize::from_bits::[i32](i32_bits); 40 let i64_val: i64 = Deserialize::from_bits::[i64](i64_bits); 41 let i128_val: i128 = Deserialize::from_bits::[i128](i128_bits); 42 let f: field = Deserialize::from_bits::[field](field_bits); 43 let g: group = Deserialize::from_bits::[group](group_bits); 44 let s: scalar = Deserialize::from_bits::[scalar](scalar_bits); 45 let addr: address = Deserialize::from_bits::[address](addr_bits); 46 47 return ( 48 b, u8_val, u16_val, u32_val, u64_val, u128_val, 49 i8_val, i16_val, i32_val, i64_val, i128_val, 50 f, g, s, addr 51 ); 52 } 53 }