1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//! A crate for reading/writing from/to byte buffers.
//!
//! This crate uses big-endian for all numbers.
//!
//! # Usage Example
//!
//! ```rust
//! use {
//! pigeon::{
//! FrameWriter,
//! FrameReader,
//! FrameTarget,
//! Grab,
//! Dump,
//! ShortStr,
//! },
//! };
//!
//! pub struct Animal {
//! pub position: (f32, f32, f32),
//! pub fluffy: bool,
//! pub name: String,
//! pub weight: f32,
//! }
//!
//! impl Dump for Animal {
//! fn dump_to<T: FrameTarget>(&self, writer: &mut FrameWriter<T>) {
//! writer.write(self.position);
//! writer.write(self.fluffy);
//! writer.write(ShortStr(&self.name));
//! writer.write(self.weight);
//! }
//! }
//!
//! impl<'a> Grab<'a> for Animal {
//! fn grab_from(reader: &mut FrameReader<'a>) -> Option<Self> {
//! let position = reader.read()?;
//! let fluffy = reader.read()?;
//! let ShortStr(name) = reader.read()?;
//! let weight = reader.read()?;
//! Some(Animal {
//! position,
//! fluffy,
//! name: name.to_owned(),
//! weight,
//! })
//! }
//! }
//! ```
pub use ;