#random #chinese #generator #fastrand #localization #logograms

chinese-rand

Random generation of data structures in Chinese, using Rust

6 releases

new 0.2.1 Sep 22, 2024
0.2.0 Sep 21, 2024
0.1.3 Sep 10, 2024
0.1.2 Jun 3, 2024
0.1.1 May 31, 2024

#476 in Data structures

Download history 167/week @ 2024-06-03 11/week @ 2024-06-10 10/week @ 2024-07-29 117/week @ 2024-09-09 31/week @ 2024-09-16

148 downloads per month

MIT license

41KB
296 lines

chinese-rand

Random generation of data structures in Chinese, using Rust

Crates.io Version

This crate is designed to instantiate random instances of the data structures implementing the ChineseFormat trait, made available by chinese_format.

The core concept is the ChineseFormatGenerator struct, which can be instantiated by passing an object implementing the RawGenerator trait:

use chinese_format::{ChineseFormat, Fraction, Variant};
use chinese_rand::*;

fn main() -> GenericResult<()> {
    let generator = ChineseFormatGenerator::new(FastRandGenerator::new());

    // Now setting the random seed just in order to
    //predict the generated values
    fastrand::seed(90);

    let fraction: Fraction = generator.fraction(1..=10, 1..=10)?;

    let chinese = fraction.to_chinese(Variant::Simplified);

    assert_eq!(chinese, "六分之七");

    #[cfg(feature = "gregorian")]
    {
      // Now setting the random seed just in order to
      //predict the generated values
      fastrand::seed(91);

      let gregorianGenerator = generator.gregorian();

      let delta_time = gregorianGenerator.delta_time(
        gregorian::DeltaTimeParams {
          formal: true
        }
      );

      assert_eq!(
        delta_time.to_chinese(Variant::Simplified),
        "差六分五点"
      );
    }

    Ok(())
}

Features

  • fastrand: enables FastRandGenerator, based on fastrand. Enabled by default.

  • digit-sequence: enables random generation of data types - like Decimal - based on DigitSequence.

  • currency: enables the random generation of the data types in the currency module.

  • gregorian: enables the random generation of the data types in the gregorian module, which is dedicated to dates and times.

    Also enables: digit-sequence.

Crates.io

https://crates.io/crates/chinese-rand

Documentation

https://docs.rs/chinese-rand

License

MIT

Dependencies

~375KB