1#[cfg(feature = "serde")]
2use ::serde::{Deserialize, Serialize};
3
4use crate::basic_types::Rect;
5use crate::fixed::Ufixed8P8;
6use crate::Tag;
7
8#[cfg_attr(feature = "serde", derive(Serialize, Deserialize), serde(rename_all = "PascalCase"))]
9#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
10pub enum CompressionMethod {
11 None,
12 Deflate,
13 Lzma,
14}
15
16#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
17#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
18pub struct Header {
19 pub swf_version: u8,
21 pub frame_size: Rect,
23 pub frame_rate: Ufixed8P8,
24 pub frame_count: u16,
25}
26
27#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
28#[derive(Clone, Debug, PartialEq, Eq)]
29pub struct Movie {
30 pub header: Header,
31 pub tags: Vec<Tag>,
32}
33
34#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
36#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
37pub struct SwfSignature {
38 pub compression_method: CompressionMethod,
40 pub swf_version: u8,
42 pub uncompressed_file_length: usize,
44}