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
64
65
66
67
68
69
70
71
72
73
74
use cratePacket;
/// Iterator type for reading the individual packets of a
/// [Ump](crate::buffer::Ump) backed message.
///
/// Returned from [Packets::packets].
ChunksExact);
/// Read the individual packets of a message represented with UMP packets.
///
/// ## Basic Usage
///
/// ```rust
/// use midi2::prelude::*;
///
/// let mut message = flex_data::ProjectName::<Vec<u32>>::new();
/// message.set_text("Shadows of the Forgotten Cathedral");
///
/// let mut packets = message.packets();
///
/// assert_eq!(&*packets.next().unwrap(), &[0xD0500101, 0x53686164, 0x6F777320, 0x6F662074][..]);
/// assert_eq!(&*packets.next().unwrap(), &[0xD0900101, 0x68652046, 0x6F72676F, 0x7474656E][..]);
/// assert_eq!(&*packets.next().unwrap(), &[0xD0D00101, 0x20436174, 0x68656472, 0x616C0000][..]);
/// assert_eq!(packets.next(), None);
/// ```
///
/// Packets may be shorter than 128 bytes for certain messages which are represented by shorter
/// packets.
///
/// ```rust
/// use midi2::prelude::*;
///
/// let mut message = sysex7::Sysex7::<Vec<u32>>::new();
/// message.set_payload((0..20).map(u7::new));
///
/// let mut packets = message.packets();
///
/// assert_eq!(&*packets.next().unwrap(), &[0x30160001, 0x2030405][..]);
/// assert_eq!(&*packets.next().unwrap(), &[0x30260607, 0x8090A0B][..]);
/// assert_eq!(&*packets.next().unwrap(), &[0x30260C0D, 0xE0F1011][..]);
/// assert_eq!(&*packets.next().unwrap(), &[0x30321213, 0x0][..]);
/// assert_eq!(packets.next(), None);
/// ```