google / google/pdl

Big Endianess

Open
#141 14 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
86
Forks
18
Avg merge
20h 49m
Merged PRs (30d)
1

Description

I declared the following packet:
```
big_endian_packets

// https://ccsds.org/Pubs/133x0b2e2.pdf
struct PacketPrimaryHeader {
packet_version_number: 3,
packet_type: 1,
secondary_header: 1,
apid: 11,
}

packet CcsdsSpacePacket {
header: PacketPrimaryHeader,
}
```

Then I use it in the folowing Rust code:
```Rust
let c = ccsds::CcsdsSpacePacket {
header: PacketPrimaryHeader {
packet_version_number: 0,
packet_type: 1,
secondary_header: 0,
apid: 1,
},
};
let b = c.encode_to_vec().unwrap();
let file = File::create("ccsds.bin").unwrap();
let mut writer = BufWriter::new(file);
writer.write_all(&b);
writer.flush();
```

I'm surprised by the result
```
$ xxd -b ~/Devel/pdl/pdl-tests/ccsds.bin
00000000: 00000000 00101000 .(
```

I expected
```
00000000: 00010000 00000001 ..
```

What's wrong in my declaration?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.