1pub mod double_preset;
9pub mod error;
10pub mod milk_img_ini;
11pub mod milk_msg_ini;
12pub mod parser;
13pub mod preset;
14
15pub use double_preset::{BlendPattern, DoublePreset, parse_double_preset};
16pub use error::{ParseError, Result};
17pub use milk_img_ini::{SpriteDef, parse_milk_img_ini};
18pub use milk_msg_ini::{MessageDef, parse_milk_msg_ini};
19pub use preset::MilkPreset;
20
21pub fn parse_preset(input: &str) -> Result<MilkPreset> {
37 parser::parse_milk_preset(input)
38}
39
40#[cfg(test)]
41mod tests {
42 use super::*;
43
44 #[test]
45 fn test_parse_simple_preset() {
46 let input = r#"MILKDROP_PRESET_VERSION=201
47PSVERSION=2
48[preset00]
49fRating=5.000000
50zoom=0.99197
51rot=0.00000
52cx=0.500
53cy=0.500
54wave_r=1.000
55wave_g=0.000
56wave_b=0.000
57per_frame_1=wave_r = 0.5;
58per_pixel_1=zoom=zoom+0.1;
59"#;
60
61 let result = parse_preset(input);
62 assert!(result.is_ok());
63
64 let preset = result.unwrap();
65 assert_eq!(preset.version, 201);
66 }
67}