view formats/src/th06/pos.rs @ 784:1f152ca95658

Replace pytouhou.utils.random.Random with a Rust version libtouhou.Prng now supports having its seed generated randomly using the getrandom crate, and is now exposed to Python.
author Link Mauve <linkmauve@linkmauve.fr>
date Sun, 23 Nov 2025 12:48:03 +0100
parents ec1e06402a97
children
line wrap: on
line source

//! POS music track format support.

use nom::{IResult, Parser, number::complete::le_u32};

/// A struct describing the loop points of Touhou background music.
#[derive(Debug, Clone)]
pub struct LoopPoints {
    /// Time to which the music should loop after reaching end.
    pub start: u32,

    /// Time at which to loop back to start.
    pub end: u32,
}

impl LoopPoints {
    /// Parse a slice of bytes into a `LoopPoints` struct.
    pub fn from_slice(input: &[u8]) -> IResult<&[u8], LoopPoints> {
        let (i, (start, end)) = (le_u32, le_u32).parse(input)?;
        Ok((i, LoopPoints { start, end }))
    }
}