diff --git a/components/calendar/src/date.rs b/components/calendar/src/date.rs index efebd7314da..9e5631b5bf3 100644 --- a/components/calendar/src/date.rs +++ b/components/calendar/src/date.rs @@ -178,6 +178,9 @@ impl Date { /// let date_iso = Date::try_from_codes(YearInput::Extended(1970), Month::new(1), 2, Iso) /// .expect("Failed to initialize ISO Date instance."); /// + /// // Shorthand using From impls: + /// assert_eq!(date_iso, Date::try_from_codes(1970.into(), 1.into(), 2, Iso).unwrap()); + /// /// assert_eq!(date_iso.era_year().year, 1970); /// assert_eq!(date_iso.month().ordinal, 1); /// assert_eq!(date_iso.day_of_month().0, 2); diff --git a/components/calendar/src/types.rs b/components/calendar/src/types.rs index 3c434185215..277c48cd313 100644 --- a/components/calendar/src/types.rs +++ b/components/calendar/src/types.rs @@ -505,6 +505,18 @@ impl fmt::Display for MonthCode { /// * `Month::leap(2)` = `M02L` /// /// [Temporal]: https://tc39.es/proposal-intl-era-monthcode/ +/// +/// # Examples +/// +/// ``` +/// use icu::calendar::types::Month; +/// +/// assert_eq!(Month::new(7).code().0.as_str(), "M07"); +/// assert_eq!(Month::leap(7).code().0.as_str(), "M07L"); +/// +/// // impl From returns a normal month: +/// assert_eq!(Month::from(7), Month::new(7)); +/// ``` #[derive(Copy, Clone, Debug, PartialEq, Hash, Eq, PartialOrd)] pub struct Month { /// Month number between 0 and 99 @@ -640,6 +652,14 @@ impl Month { } } +/// Returns a new normal (non-leap) [`Month`]. +impl From for Month { + #[inline] + fn from(number: u8) -> Self { + Self::new(number) + } +} + #[test] fn test_month_cmp() { let months_in_order = [