[][src]Crate hltas

A crate for reading and writing Half-Life TAS scripts (.hltas).

Examples

use hltas::{HLTAS, types::{JumpBug, Line, Times}};

let contents = "\
version 1
demo test
frames
------b---|------|------|0.001|-|-|5";

match HLTAS::from_str(&contents) {
    Ok(hltas) => {
        assert_eq!(hltas.properties.demo, Some("test"));

        if let Line::FrameBulk(frame_bulk) = hltas.lines[0] {
            assert_eq!(
                frame_bulk.auto_actions.jump_bug,
                Some(JumpBug { times: Times::UnlimitedWithinFrameBulk })
            );
            assert_eq!(frame_bulk.frame_time, "0.001");
            assert_eq!(frame_bulk.frame_count.get(), 5);
        } else {
            unreachable!()
        }
    }

    // The errors are pretty-printed with context.
    Err(error) => println!("{}", error),
}

Re-exports

pub use types::HLTAS;

Modules

read

Reading .hltas files.

types

Types representing various parts of .hltas scripts.