macro_rules! mp4_data {
($(#[$attr:meta])* $vis:vis struct $name:ident { $($v:vis $data_name:ident: $data:ty),* $(,)* }) => { ... };
($(#[$attr:meta])* $vis:vis struct $name:ident ($($v:vis $data:ty),* $(,)* );) => { ... };
(@bytes $count:ident, $self:ident) => { ... };
(@bytes $count:ident, $self:ident, $data:ty) => { ... };
(@bytes $count:ident, $self:ident, $data:ty, $data2:ty) => { ... };
(@bytes $count:ident, $self:ident, $data:ty, $data2:ty, $data3:ty) => { ... };
(@bytes $count:ident, $self:ident, $data:ty, $data2:ty, $data3:ty, $data4:ty) => { ... };
(@write $count:ident, $self:ident, $writer:ident) => { ... };
(@write $count:ident, $self:ident, $writer:ident, $data:ty) => { ... };
(@write $count:ident, $self:ident, $writer:ident, $data:ty, $data2:ty) => { ... };
(@write $count:ident, $self:ident, $writer:ident, $data:ty, $data2:ty, $data3:ty) => { ... };
(@write $count:ident, $self:ident, $writer:ident, $data:ty, $data2:ty, $data3:ty, $data4:ty) => { ... };
}