pub trait DateTimeNamesFrom<M>: DateTimeNamesMarkerwhere
M: DateTimeNamesMarker,{
Show 15 methods
// Required methods
fn map_year_names(
other: <<M as DateTimeNamesMarker>::YearNames as NamesContainer<YearNamesV1, YearNameLength>>::Container,
) -> <Self::YearNames as NamesContainer<YearNamesV1, YearNameLength>>::Container;
fn map_month_names(
other: <<M as DateTimeNamesMarker>::MonthNames as NamesContainer<MonthNamesV1, MonthNameLength>>::Container,
) -> <Self::MonthNames as NamesContainer<MonthNamesV1, MonthNameLength>>::Container;
fn map_weekday_names(
other: <<M as DateTimeNamesMarker>::WeekdayNames as NamesContainer<WeekdayNamesV1, WeekdayNameLength>>::Container,
) -> <Self::WeekdayNames as NamesContainer<WeekdayNamesV1, WeekdayNameLength>>::Container;
fn map_day_period_names(
other: <<M as DateTimeNamesMarker>::DayPeriodNames as NamesContainer<DayPeriodNamesV1, DayPeriodNameLength>>::Container,
) -> <Self::DayPeriodNames as NamesContainer<DayPeriodNamesV1, DayPeriodNameLength>>::Container;
fn map_zone_essentials(
other: <<M as DateTimeNamesMarker>::ZoneEssentials as NamesContainer<TimeZoneEssentialsV1, ()>>::Container,
) -> <Self::ZoneEssentials as NamesContainer<TimeZoneEssentialsV1, ()>>::Container;
fn map_zone_locations(
other: <<M as DateTimeNamesMarker>::ZoneLocations as NamesContainer<LocationsV1, ()>>::Container,
) -> <Self::ZoneLocations as NamesContainer<LocationsV1, ()>>::Container;
fn map_zone_locations_root(
other: <<M as DateTimeNamesMarker>::ZoneLocationsRoot as NamesContainer<LocationsRootV1, ()>>::Container,
) -> <Self::ZoneLocationsRoot as NamesContainer<LocationsRootV1, ()>>::Container;
fn map_zone_exemplars(
other: <<M as DateTimeNamesMarker>::ZoneExemplars as NamesContainer<ExemplarCitiesV1, ()>>::Container,
) -> <Self::ZoneExemplars as NamesContainer<ExemplarCitiesV1, ()>>::Container;
fn map_zone_exemplars_root(
other: <<M as DateTimeNamesMarker>::ZoneExemplarsRoot as NamesContainer<ExemplarCitiesRootV1, ()>>::Container,
) -> <Self::ZoneExemplarsRoot as NamesContainer<ExemplarCitiesRootV1, ()>>::Container;
fn map_zone_generic_long(
other: <<M as DateTimeNamesMarker>::ZoneGenericLong as NamesContainer<MetazoneGenericNamesLongV1, ()>>::Container,
) -> <Self::ZoneGenericLong as NamesContainer<MetazoneGenericNamesLongV1, ()>>::Container;
fn map_zone_generic_short(
other: <<M as DateTimeNamesMarker>::ZoneGenericShort as NamesContainer<MetazoneGenericNamesShortV1, ()>>::Container,
) -> <Self::ZoneGenericShort as NamesContainer<MetazoneGenericNamesShortV1, ()>>::Container;
fn map_zone_standard_long(
other: <<M as DateTimeNamesMarker>::ZoneStandardLong as NamesContainer<MetazoneStandardNamesLongV1, ()>>::Container,
) -> <Self::ZoneStandardLong as NamesContainer<MetazoneStandardNamesLongV1, ()>>::Container;
fn map_zone_specific_long(
other: <<M as DateTimeNamesMarker>::ZoneSpecificLong as NamesContainer<MetazoneSpecificNamesLongV1, ()>>::Container,
) -> <Self::ZoneSpecificLong as NamesContainer<MetazoneSpecificNamesLongV1, ()>>::Container;
fn map_zone_specific_short(
other: <<M as DateTimeNamesMarker>::ZoneSpecificShort as NamesContainer<MetazoneSpecificNamesShortV1, ()>>::Container,
) -> <Self::ZoneSpecificShort as NamesContainer<MetazoneSpecificNamesShortV1, ()>>::Container;
fn map_metazone_lookup(
other: <<M as DateTimeNamesMarker>::MetazoneLookup as NamesContainer<MetazonePeriodV1, ()>>::Container,
) -> <Self::MetazoneLookup as NamesContainer<MetazonePeriodV1, ()>>::Container;
}
Expand description
A trait for a DateTimeNamesMarker
that can be created from a more specific one, M
.
This trait is blanket-implemented on all field sets that are more general than M
.
§Examples
Example pairs of field sets where the trait is implemented:
use icu::datetime::fieldsets::enums::CompositeDateTimeFieldSet;
use icu::datetime::fieldsets::enums::CompositeFieldSet;
use icu::datetime::fieldsets::enums::DateFieldSet;
use icu::datetime::fieldsets::enums::TimeFieldSet;
use icu::datetime::fieldsets::T;
use icu::datetime::fieldsets::YMD;
use icu::datetime::scaffold::DateTimeNamesFrom;
use icu::datetime::scaffold::DateTimeNamesMarker;
fn is_trait_implemented<Source, Target>()
where
Source: DateTimeNamesMarker,
Target: DateTimeNamesFrom<Source>,
{
}
is_trait_implemented::<YMD, DateFieldSet>();
is_trait_implemented::<YMD, CompositeDateTimeFieldSet>();
is_trait_implemented::<YMD, CompositeFieldSet>();
is_trait_implemented::<T, TimeFieldSet>();
is_trait_implemented::<T, CompositeDateTimeFieldSet>();
is_trait_implemented::<T, CompositeFieldSet>();
is_trait_implemented::<DateFieldSet, CompositeDateTimeFieldSet>();
is_trait_implemented::<DateFieldSet, CompositeFieldSet>();
is_trait_implemented::<TimeFieldSet, CompositeDateTimeFieldSet>();
is_trait_implemented::<TimeFieldSet, CompositeFieldSet>();
Required Methods§
fn map_year_names( other: <<M as DateTimeNamesMarker>::YearNames as NamesContainer<YearNamesV1, YearNameLength>>::Container, ) -> <Self::YearNames as NamesContainer<YearNamesV1, YearNameLength>>::Container
fn map_month_names( other: <<M as DateTimeNamesMarker>::MonthNames as NamesContainer<MonthNamesV1, MonthNameLength>>::Container, ) -> <Self::MonthNames as NamesContainer<MonthNamesV1, MonthNameLength>>::Container
fn map_weekday_names( other: <<M as DateTimeNamesMarker>::WeekdayNames as NamesContainer<WeekdayNamesV1, WeekdayNameLength>>::Container, ) -> <Self::WeekdayNames as NamesContainer<WeekdayNamesV1, WeekdayNameLength>>::Container
fn map_day_period_names( other: <<M as DateTimeNamesMarker>::DayPeriodNames as NamesContainer<DayPeriodNamesV1, DayPeriodNameLength>>::Container, ) -> <Self::DayPeriodNames as NamesContainer<DayPeriodNamesV1, DayPeriodNameLength>>::Container
fn map_zone_essentials( other: <<M as DateTimeNamesMarker>::ZoneEssentials as NamesContainer<TimeZoneEssentialsV1, ()>>::Container, ) -> <Self::ZoneEssentials as NamesContainer<TimeZoneEssentialsV1, ()>>::Container
fn map_zone_locations( other: <<M as DateTimeNamesMarker>::ZoneLocations as NamesContainer<LocationsV1, ()>>::Container, ) -> <Self::ZoneLocations as NamesContainer<LocationsV1, ()>>::Container
fn map_zone_locations_root( other: <<M as DateTimeNamesMarker>::ZoneLocationsRoot as NamesContainer<LocationsRootV1, ()>>::Container, ) -> <Self::ZoneLocationsRoot as NamesContainer<LocationsRootV1, ()>>::Container
fn map_zone_exemplars( other: <<M as DateTimeNamesMarker>::ZoneExemplars as NamesContainer<ExemplarCitiesV1, ()>>::Container, ) -> <Self::ZoneExemplars as NamesContainer<ExemplarCitiesV1, ()>>::Container
fn map_zone_exemplars_root( other: <<M as DateTimeNamesMarker>::ZoneExemplarsRoot as NamesContainer<ExemplarCitiesRootV1, ()>>::Container, ) -> <Self::ZoneExemplarsRoot as NamesContainer<ExemplarCitiesRootV1, ()>>::Container
fn map_zone_generic_long( other: <<M as DateTimeNamesMarker>::ZoneGenericLong as NamesContainer<MetazoneGenericNamesLongV1, ()>>::Container, ) -> <Self::ZoneGenericLong as NamesContainer<MetazoneGenericNamesLongV1, ()>>::Container
fn map_zone_generic_short( other: <<M as DateTimeNamesMarker>::ZoneGenericShort as NamesContainer<MetazoneGenericNamesShortV1, ()>>::Container, ) -> <Self::ZoneGenericShort as NamesContainer<MetazoneGenericNamesShortV1, ()>>::Container
fn map_zone_standard_long( other: <<M as DateTimeNamesMarker>::ZoneStandardLong as NamesContainer<MetazoneStandardNamesLongV1, ()>>::Container, ) -> <Self::ZoneStandardLong as NamesContainer<MetazoneStandardNamesLongV1, ()>>::Container
fn map_zone_specific_long( other: <<M as DateTimeNamesMarker>::ZoneSpecificLong as NamesContainer<MetazoneSpecificNamesLongV1, ()>>::Container, ) -> <Self::ZoneSpecificLong as NamesContainer<MetazoneSpecificNamesLongV1, ()>>::Container
fn map_zone_specific_short( other: <<M as DateTimeNamesMarker>::ZoneSpecificShort as NamesContainer<MetazoneSpecificNamesShortV1, ()>>::Container, ) -> <Self::ZoneSpecificShort as NamesContainer<MetazoneSpecificNamesShortV1, ()>>::Container
fn map_metazone_lookup( other: <<M as DateTimeNamesMarker>::MetazoneLookup as NamesContainer<MetazonePeriodV1, ()>>::Container, ) -> <Self::MetazoneLookup as NamesContainer<MetazonePeriodV1, ()>>::Container
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.