#[test]
fn simple_raw_data_struct() {
let data: &[::Word] = &[
capnp_word!(0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00),
capnp_word!(0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef)];
let reader = ::private::layout::PointerReader::get_root_unchecked(data.as_ptr())
.get_struct(::std::ptr::null()).unwrap();
assert_eq!(0xefcdab8967452301u64, reader.get_data_field::<u64>(0));
assert_eq!(0, reader.get_data_field::<u64>(1));
assert_eq!(0x67452301u32, reader.get_data_field::<u32>(0));
assert_eq!(0xefcdab89u32, reader.get_data_field::<u32>(1));
assert_eq!(0, reader.get_data_field::<u32>(2));
assert_eq!(0x2301u16, reader.get_data_field::<u16>(0));
assert_eq!(reader.get_bool_field(0), true);
assert_eq!(reader.get_bool_field(1), false);
assert_eq!(reader.get_bool_field(2), false);
assert_eq!(reader.get_bool_field(3), false);
assert_eq!(reader.get_bool_field(4), false);
assert_eq!(reader.get_bool_field(5), false);
assert_eq!(reader.get_bool_field(6), false);
assert_eq!(reader.get_bool_field(7), false);
assert_eq!(reader.get_bool_field(8), true);
assert_eq!(reader.get_bool_field(9), true);
assert_eq!(reader.get_bool_field(10), false);
assert_eq!(reader.get_bool_field(11), false);
assert_eq!(reader.get_bool_field(12), false);
assert_eq!(reader.get_bool_field(13), true);
assert_eq!(reader.get_bool_field(14), false);
assert_eq!(reader.get_bool_field(15), false);
assert_eq!(reader.get_bool_field(63), true);
assert_eq!(reader.get_bool_field(64), false);
}
#[test]
fn bool_list() {
use private::layout::PrimitiveElement;
use traits::FromPointerReader;
let data: &[::Word] = &[
capnp_word!(0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00),
capnp_word!(0x75, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)];
let pointer_reader =
::private::layout::PointerReader::get_root_unchecked(data.as_ptr());
let reader = pointer_reader.get_list(::private::layout::ElementSize::Bit, ::std::ptr::null()).unwrap();
assert_eq!(reader.len(), 10);
assert_eq!(bool::get(&reader, 0), true);
assert_eq!(bool::get(&reader, 1), false);
assert_eq!(bool::get(&reader, 2), true);
assert_eq!(bool::get(&reader, 3), false);
assert_eq!(bool::get(&reader, 4), true);
assert_eq!(bool::get(&reader, 5), true);
assert_eq!(bool::get(&reader, 6), true);
assert_eq!(bool::get(&reader, 7), false);
assert_eq!(bool::get(&reader, 8), false);
assert_eq!(bool::get(&reader, 9), true);
let reader = ::primitive_list::Reader::<bool>::get_from_pointer(&pointer_reader).unwrap();
assert_eq!(reader.len(), 10);
assert_eq!(reader.get(0), true);
assert_eq!(reader.get(1), false);
assert_eq!(reader.get(2), true);
assert_eq!(reader.get(3), false);
assert_eq!(reader.get(4), true);
assert_eq!(reader.get(5), true);
assert_eq!(reader.get(6), true);
assert_eq!(reader.get(7), false);
assert_eq!(reader.get(8), false);
assert_eq!(reader.get(9), true);
}