6 releases
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 |
#533 in Data structures
41KB
296 lines
chinese-rand
Random generation of data structures in Chinese, using Rust
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
: enablesFastRandGenerator
, based on fastrand. Enabled by default. -
digit-sequence
: enables random generation of data types - likeDecimal
- based on DigitSequence. -
currency
: enables the random generation of the data types in thecurrency
module. -
gregorian
: enables the random generation of the data types in thegregorian
module, which is dedicated to dates and times.Also enables:
digit-sequence
.
Crates.io
https://crates.io/crates/chinese-rand
Documentation
License
Dependencies
~375KB