#date #type #validation #integer-value

date_validation_types

- 用于验证 u32 值是否适合日期、月份或年份的类型。 - 用于从简单整数值生成有效日期的类型

1 个稳定版本

2.0.0 2023年7月16日

#456日期和时间


用于 week_calendar

MIT/Apache

18KB
401

date_validation_types

当前版本: 1.0.0

用途

  • 用于验证 u32 值是否适合日期、月份或年份的类型。
  • 用于从简单整数值生成有效日期的类型

许可证

MIT OR Apache-2.0


lib.rs:

用途

  • 用于验证 u32 值是否适合日期、月份或年份的类型。
  • 用于从简单整数值生成有效日期的类型

示例

用法

use date_validation_types::units::{
    InvalidDay, InvalidMonth, InvalidYear, ValidatedDate, ValidatedDay, ValidatedMonth,
    ValidatedYear,
};
let valid_day: ValidatedDay = 10.try_into().unwrap();
let valid_month: ValidatedMonth = 10.try_into().unwrap();
let valid_year: ValidatedYear = 1990.try_into().unwrap();

let valid_date = ValidatedDate::new(valid_year, valid_month, valid_day).unwrap();
assert_eq!(valid_date.day(), 10);
assert_eq!(valid_date.month(), 10);
assert_eq!(valid_date.year(), 1990);

let invalid_day: Result<ValidatedDay, InvalidDay> = 32.try_into();
let invalid_month: Result<ValidatedMonth, InvalidMonth> = 13.try_into();
let invalid_year: Result<ValidatedYear, InvalidYear> = 455555555.try_into();
assert!(invalid_day.is_err());
assert!(invalid_month.is_err());
assert!(invalid_year.is_err());

// Construct date via a day within a the year instead of a month
let ordinal_date = ValidatedDate::from_ordinal(1990, 42).unwrap();
assert_eq!(ordinal_date.year(), 1990);
assert_eq!(ordinal_date.month(), 2);
assert_eq!(ordinal_date.day(), 11);

依赖

~1.3–2MB
~36K SLoC