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