zerofrom

Trait ZeroFrom

Source
pub trait ZeroFrom<'zf, C: ?Sized>: 'zf {
    // Required method
    fn zero_from(other: &'zf C) -> Self;
}
Expand description

Trait for types that can be created from a reference to a different type C with no allocations, i.e. a zero-copy (zero-alloc) version of “From”

A type can be the ZeroFrom target of multiple other types.

The intention is for ZeroFrom to produce a struct from a other with as little work as possible. Although it is technically possible to implement ZeroFrom without being zero-copy (using heap allocations), doing so defeats the purpose of ZeroFrom.

For example, impl ZeroFrom<C> for Cow<str> should return a Cow::Borrowed pointing at data in the other type C, even if the other type is itself fully owned.

One can use the #[derive(ZeroFrom)] custom derive to automatically implement this trait.

§Examples

Implementing ZeroFrom on a custom data struct:

use std::borrow::Cow;
use zerofrom::ZeroFrom;

struct MyStruct<'data> {
    message: Cow<'data, str>,
}

// Reference from a borrowed version of self
impl<'zf> ZeroFrom<'zf, MyStruct<'_>> for MyStruct<'zf> {
    fn zero_from(other: &'zf MyStruct<'_>) -> Self {
        MyStruct {
            message: Cow::Borrowed(&other.message),
        }
    }
}

// Reference from a string slice directly
impl<'zf> ZeroFrom<'zf, str> for MyStruct<'zf> {
    fn zero_from(other: &'zf str) -> Self {
        MyStruct {
            message: Cow::Borrowed(other),
        }
    }
}

Required Methods§

Source

fn zero_from(other: &'zf C) -> Self

Clone the other C into a struct that may retain references into C.

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.

Implementations on Foreign Types§

Source§

impl<'a> ZeroFrom<'a, bool> for bool

Source§

fn zero_from(this: &'a Self) -> Self

Source§

impl<'a> ZeroFrom<'a, char> for char

Source§

fn zero_from(this: &'a Self) -> Self

Source§

impl<'a> ZeroFrom<'a, i8> for i8

Source§

fn zero_from(this: &'a Self) -> Self

Source§

impl<'a> ZeroFrom<'a, i16> for i16

Source§

fn zero_from(this: &'a Self) -> Self

Source§

impl<'a> ZeroFrom<'a, i32> for i32

Source§

fn zero_from(this: &'a Self) -> Self

Source§

impl<'a> ZeroFrom<'a, i64> for i64

Source§

fn zero_from(this: &'a Self) -> Self

Source§

impl<'a> ZeroFrom<'a, i128> for i128

Source§

fn zero_from(this: &'a Self) -> Self

Source§

impl<'a> ZeroFrom<'a, isize> for isize

Source§

fn zero_from(this: &'a Self) -> Self

Source§

impl<'a> ZeroFrom<'a, u8> for u8

Source§

fn zero_from(this: &'a Self) -> Self

Source§

impl<'a> ZeroFrom<'a, u16> for u16

Source§

fn zero_from(this: &'a Self) -> Self

Source§

impl<'a> ZeroFrom<'a, u32> for u32

Source§

fn zero_from(this: &'a Self) -> Self

Source§

impl<'a> ZeroFrom<'a, u64> for u64

Source§

fn zero_from(this: &'a Self) -> Self

Source§

impl<'a> ZeroFrom<'a, u128> for u128

Source§

fn zero_from(this: &'a Self) -> Self

Source§

impl<'a> ZeroFrom<'a, usize> for usize

Source§

fn zero_from(this: &'a Self) -> Self

Source§

impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 1]> for [T; 1]

Source§

fn zero_from(this: &'a [C; 1]) -> Self

Source§

impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 2]> for [T; 2]

Source§

fn zero_from(this: &'a [C; 2]) -> Self

Source§

impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 3]> for [T; 3]

Source§

fn zero_from(this: &'a [C; 3]) -> Self

Source§

impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 4]> for [T; 4]

Source§

fn zero_from(this: &'a [C; 4]) -> Self

Source§

impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 5]> for [T; 5]

Source§

fn zero_from(this: &'a [C; 5]) -> Self

Source§

impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 6]> for [T; 6]

Source§

fn zero_from(this: &'a [C; 6]) -> Self

Source§

impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 7]> for [T; 7]

Source§

fn zero_from(this: &'a [C; 7]) -> Self

Source§

impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 8]> for [T; 8]

Source§

fn zero_from(this: &'a [C; 8]) -> Self

Source§

impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 9]> for [T; 9]

Source§

fn zero_from(this: &'a [C; 9]) -> Self

Source§

impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 10]> for [T; 10]

Source§

fn zero_from(this: &'a [C; 10]) -> Self

Source§

impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 11]> for [T; 11]

Source§

fn zero_from(this: &'a [C; 11]) -> Self

Source§

impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 12]> for [T; 12]

Source§

fn zero_from(this: &'a [C; 12]) -> Self

Source§

impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 13]> for [T; 13]

Source§

fn zero_from(this: &'a [C; 13]) -> Self

Source§

impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 14]> for [T; 14]

Source§

fn zero_from(this: &'a [C; 14]) -> Self

Source§

impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 15]> for [T; 15]

Source§

fn zero_from(this: &'a [C; 15]) -> Self

Source§

impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 16]> for [T; 16]

Source§

fn zero_from(this: &'a [C; 16]) -> Self

Source§

impl<'zf> ZeroFrom<'zf, str> for &'zf str

Source§

fn zero_from(other: &'zf str) -> Self

Source§

impl<'zf> ZeroFrom<'zf, str> for Cow<'zf, str>

Source§

fn zero_from(other: &'zf str) -> Self

Source§

impl<'zf> ZeroFrom<'zf, String> for &'zf str

Source§

fn zero_from(other: &'zf String) -> Self

Source§

impl<'zf> ZeroFrom<'zf, String> for Cow<'zf, str>

Source§

fn zero_from(other: &'zf String) -> Self

Source§

impl<'zf, B: ToOwned + ?Sized> ZeroFrom<'zf, Cow<'_, B>> for Cow<'zf, B>

Source§

fn zero_from(other: &'zf Cow<'_, B>) -> Self

Source§

impl<'zf, C1, T1: ZeroFrom<'zf, C1>, C2, T2: ZeroFrom<'zf, C2>> ZeroFrom<'zf, (C1, C2)> for (T1, T2)

Source§

fn zero_from(other: &'zf (C1, C2)) -> Self

Source§

impl<'zf, C1, T1: ZeroFrom<'zf, C1>, C2, T2: ZeroFrom<'zf, C2>, C3, T3: ZeroFrom<'zf, C3>> ZeroFrom<'zf, (C1, C2, C3)> for (T1, T2, T3)

Source§

fn zero_from(other: &'zf (C1, C2, C3)) -> Self

Source§

impl<'zf, C1, T1: ZeroFrom<'zf, C1>, C2, T2: ZeroFrom<'zf, C2>, C3, T3: ZeroFrom<'zf, C3>, C4, T4: ZeroFrom<'zf, C4>> ZeroFrom<'zf, (C1, C2, C3, C4)> for (T1, T2, T3, T4)

Source§

fn zero_from(other: &'zf (C1, C2, C3, C4)) -> Self

Source§

impl<'zf, C1, T1: ZeroFrom<'zf, C1>, C2, T2: ZeroFrom<'zf, C2>, C3, T3: ZeroFrom<'zf, C3>, C4, T4: ZeroFrom<'zf, C4>, C5, T5: ZeroFrom<'zf, C5>> ZeroFrom<'zf, (C1, C2, C3, C4, C5)> for (T1, T2, T3, T4, T5)

Source§

fn zero_from(other: &'zf (C1, C2, C3, C4, C5)) -> Self

Source§

impl<'zf, C1, T1: ZeroFrom<'zf, C1>, C2, T2: ZeroFrom<'zf, C2>, C3, T3: ZeroFrom<'zf, C3>, C4, T4: ZeroFrom<'zf, C4>, C5, T5: ZeroFrom<'zf, C5>, C6, T6: ZeroFrom<'zf, C6>> ZeroFrom<'zf, (C1, C2, C3, C4, C5, C6)> for (T1, T2, T3, T4, T5, T6)

Source§

impl<'zf, C1, T1: ZeroFrom<'zf, C1>, C2, T2: ZeroFrom<'zf, C2>, C3, T3: ZeroFrom<'zf, C3>, C4, T4: ZeroFrom<'zf, C4>, C5, T5: ZeroFrom<'zf, C5>, C6, T6: ZeroFrom<'zf, C6>, C7, T7: ZeroFrom<'zf, C7>> ZeroFrom<'zf, (C1, C2, C3, C4, C5, C6, C7)> for (T1, T2, T3, T4, T5, T6, T7)

Source§

impl<'zf, C1, T1: ZeroFrom<'zf, C1>, C2, T2: ZeroFrom<'zf, C2>, C3, T3: ZeroFrom<'zf, C3>, C4, T4: ZeroFrom<'zf, C4>, C5, T5: ZeroFrom<'zf, C5>, C6, T6: ZeroFrom<'zf, C6>, C7, T7: ZeroFrom<'zf, C7>, C8, T8: ZeroFrom<'zf, C8>> ZeroFrom<'zf, (C1, C2, C3, C4, C5, C6, C7, C8)> for (T1, T2, T3, T4, T5, T6, T7, T8)

Source§

impl<'zf, C1, T1: ZeroFrom<'zf, C1>, C2, T2: ZeroFrom<'zf, C2>, C3, T3: ZeroFrom<'zf, C3>, C4, T4: ZeroFrom<'zf, C4>, C5, T5: ZeroFrom<'zf, C5>, C6, T6: ZeroFrom<'zf, C6>, C7, T7: ZeroFrom<'zf, C7>, C8, T8: ZeroFrom<'zf, C8>, C9, T9: ZeroFrom<'zf, C9>> ZeroFrom<'zf, (C1, C2, C3, C4, C5, C6, C7, C8, C9)> for (T1, T2, T3, T4, T5, T6, T7, T8, T9)

Source§

impl<'zf, C1, T1: ZeroFrom<'zf, C1>, C2, T2: ZeroFrom<'zf, C2>, C3, T3: ZeroFrom<'zf, C3>, C4, T4: ZeroFrom<'zf, C4>, C5, T5: ZeroFrom<'zf, C5>, C6, T6: ZeroFrom<'zf, C6>, C7, T7: ZeroFrom<'zf, C7>, C8, T8: ZeroFrom<'zf, C8>, C9, T9: ZeroFrom<'zf, C9>, C10, T10: ZeroFrom<'zf, C10>> ZeroFrom<'zf, (C1, C2, C3, C4, C5, C6, C7, C8, C9, C10)> for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)

Source§

impl<'zf, C, T: ZeroFrom<'zf, C>> ZeroFrom<'zf, Option<C>> for Option<T>

Source§

fn zero_from(other: &'zf Option<C>) -> Self

Source§

impl<'zf, T> ZeroFrom<'zf, [T]> for &'zf [T]

Source§

fn zero_from(other: &'zf [T]) -> &'zf [T]

Source§

impl<'zf, T: ?Sized + 'zf> ZeroFrom<'zf, PhantomData<T>> for PhantomData<T>

Source§

fn zero_from(other: &'zf PhantomData<T>) -> Self

Source§

impl<'zf, T: ?Sized> ZeroFrom<'zf, &T> for &'zf T

Source§

fn zero_from(other: &'zf &T) -> &'zf T

Implementors§

impl<'zf> ZeroFrom<'zf, EraStartDate> for EraStartDate

impl<'zf> ZeroFrom<'zf, WeekData> for WeekData

impl<'zf, 'zf_inner> ZeroFrom<'zf, ChineseBasedCache<'zf_inner>> for ChineseBasedCache<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, HijriCache<'zf_inner>> for HijriCache<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, JapaneseEras<'zf_inner>> for JapaneseEras<'zf>

impl<'a> ZeroFrom<'a, ExceptionULE> for Exception<'a>

impl<'zf, 'zf_inner> ZeroFrom<'zf, CaseMapExceptions<'zf_inner>> for CaseMapExceptions<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, CaseMap<'zf_inner>> for CaseMap<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, CaseMapUnfold<'zf_inner>> for CaseMapUnfold<'zf>

impl<'zf> ZeroFrom<'zf, CollationMetadata> for CollationMetadata

impl<'zf, 'zf_inner> ZeroFrom<'zf, CollationData<'zf_inner>> for CollationData<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, CollationDiacritics<'zf_inner>> for CollationDiacritics<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, CollationJamo<'zf_inner>> for CollationJamo<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, CollationReordering<'zf_inner>> for CollationReordering<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, CollationSpecialPrimaries<'zf_inner>> for CollationSpecialPrimaries<'zf>

impl<'data> ZeroFrom<'data, CodePointInversionListULE> for CodePointInversionList<'data>

impl<'zf> ZeroFrom<'zf, CodePointTrieHeader> for CodePointTrieHeader

impl<'zf, 'zf_inner> ZeroFrom<'zf, Char16Trie<'zf_inner>> for Char16Trie<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, CodePointInversionList<'zf_inner>> for CodePointInversionList<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, CodePointInversionListAndStringList<'zf_inner>> for CodePointInversionListAndStringList<'zf>

impl<'zf, 'zf_inner, T: TrieValue> ZeroFrom<'zf, CodePointTrie<'zf_inner, T>> for CodePointTrie<'zf, T>
where ZeroVec<'zf, T>: ZeroFrom<'zf, ZeroVec<'zf_inner, T>>,

impl<'data> ZeroFrom<'data, PatternULE> for Pattern<'data>

impl<'zf> ZeroFrom<'zf, Day> for Day

impl<'zf> ZeroFrom<'zf, DayPeriod> for DayPeriod

impl<'zf> ZeroFrom<'zf, DecimalSecond> for DecimalSecond

impl<'zf> ZeroFrom<'zf, Hour> for Hour

impl<'zf> ZeroFrom<'zf, Month> for Month

impl<'zf> ZeroFrom<'zf, Second> for Second

impl<'zf> ZeroFrom<'zf, TimeZone> for TimeZone

impl<'zf> ZeroFrom<'zf, Week> for Week

impl<'zf> ZeroFrom<'zf, Weekday> for Weekday

impl<'zf> ZeroFrom<'zf, Year> for Year

impl<'zf> ZeroFrom<'zf, CoarseHourCycle> for CoarseHourCycle

impl<'zf> ZeroFrom<'zf, TimeGranularity> for TimeGranularity

impl<'zf, 'zf_inner> ZeroFrom<'zf, Symbols<'zf_inner>> for Symbols<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, MonthNames<'zf_inner>> for MonthNames<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, YearNames<'zf_inner>> for YearNames<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, PatternPlurals<'zf_inner>> for PatternPlurals<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, Contexts<'zf_inner>> for Contexts<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, FormatWidths<'zf_inner>> for FormatWidths<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, StandAloneWidths<'zf_inner>> for StandAloneWidths<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, Symbols<'zf_inner>> for Symbols<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, Contexts<'zf_inner>> for Contexts<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, FormatWidths<'zf_inner>> for FormatWidths<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, StandAloneWidths<'zf_inner>> for StandAloneWidths<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, GenericLengthPatterns<'zf_inner>> for GenericLengthPatterns<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, LengthPatterns<'zf_inner>> for LengthPatterns<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, DateLengths<'zf_inner>> for DateLengths<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, DateSymbols<'zf_inner>> for DateSymbols<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, Eras<'zf_inner>> for Eras<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, TimeLengths<'zf_inner>> for TimeLengths<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, TimeSymbols<'zf_inner>> for TimeSymbols<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, Contexts<'zf_inner>> for Contexts<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, FormatWidths<'zf_inner>> for FormatWidths<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, StandAloneWidths<'zf_inner>> for StandAloneWidths<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, Symbols<'zf_inner>> for Symbols<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, DateTimeSkeletons<'zf_inner>> for DateTimeSkeletons<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, GluePattern<'zf_inner>> for GluePattern<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, LinearNames<'zf_inner>> for LinearNames<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, GenericPattern<'zf_inner>> for GenericPattern<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, Pattern<'zf_inner>> for Pattern<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, PluralPattern<'zf_inner>> for PluralPattern<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, PackedPatterns<'zf_inner>> for PackedPatterns<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, ExemplarCities<'zf_inner>> for ExemplarCities<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, Locations<'zf_inner>> for Locations<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, MetazoneGenericNames<'zf_inner>> for MetazoneGenericNames<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, MetazonePeriod<'zf_inner>> for MetazonePeriod<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, MetazoneSpecificNames<'zf_inner>> for MetazoneSpecificNames<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, TimeZoneEssentials<'zf_inner>> for TimeZoneEssentials<'zf>

impl<'data> ZeroFrom<'data, DecimalSymbolsStrs> for DecimalSymbolStrsBuilder<'data>

impl<'zf> ZeroFrom<'zf, GroupingSizes> for GroupingSizes

impl<'zf, 'zf_inner> ZeroFrom<'zf, DecimalSymbolStrsBuilder<'zf_inner>> for DecimalSymbolStrsBuilder<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, DecimalSymbols<'zf_inner>> for DecimalSymbols<'zf>

impl<'a> ZeroFrom<'a, FunctionCallULE> for FunctionCall<'a>

impl<'a> ZeroFrom<'a, RuleULE> for Rule<'a>

impl<'a> ZeroFrom<'a, SegmentULE> for Segment<'a>

impl<'a> ZeroFrom<'a, SimpleIdULE> for SimpleId<'a>

impl<'data> ZeroFrom<'data, PatternULE> for Pattern<'data>

impl<'data> ZeroFrom<'data, PersonNamesFormattingDataVarULE> for PersonNamesFormattingData<'data>

impl<'data> ZeroFrom<'data, ConversionInfoULE> for ConversionInfo<'data>

impl<'zf, 'zf_inner> ZeroFrom<'zf, CompactDecimalPatternData<'zf_inner>> for CompactDecimalPatternData<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, Pattern<'zf_inner>> for Pattern<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, CurrencyEssentials<'zf_inner>> for CurrencyEssentials<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, ShortCurrencyCompact<'zf_inner>> for ShortCurrencyCompact<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, CurrencyDisplayname<'zf_inner>> for CurrencyDisplayname<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, CurrencyPatternsData<'zf_inner>> for CurrencyPatternsData<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, CurrencyExtendedData<'zf_inner>> for CurrencyExtendedData<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, PercentEssentials<'zf_inner>> for PercentEssentials<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, UnitsDisplayName<'zf_inner>> for UnitsDisplayName<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, UnitsEssentials<'zf_inner>> for UnitsEssentials<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, LanguageDisplayNames<'zf_inner>> for LanguageDisplayNames<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, LocaleDisplayNames<'zf_inner>> for LocaleDisplayNames<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, RegionDisplayNames<'zf_inner>> for RegionDisplayNames<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, ScriptDisplayNames<'zf_inner>> for ScriptDisplayNames<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, VariantDisplayNames<'zf_inner>> for VariantDisplayNames<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, DigitalDurationData<'zf_inner>> for DigitalDurationData<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, UnitsTrie<'zf_inner>> for UnitsTrie<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, PersonNamesFormat<'zf_inner>> for PersonNamesFormat<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, RelativeTimePatternData<'zf_inner>> for RelativeTimePatternData<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, RuleBasedTransliterator<'zf_inner>> for RuleBasedTransliterator<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, VarTable<'zf_inner>> for VarTable<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, UnitsInfo<'zf_inner>> for UnitsInfo<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, ConditionalListJoinerPattern<'zf_inner>> for ConditionalListJoinerPattern<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, ListFormatterPatterns<'zf_inner>> for ListFormatterPatterns<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, ListJoinerPattern<'zf_inner>> for ListJoinerPattern<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, SerdeDFA<'zf_inner>> for SerdeDFA<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, SpecialCasePattern<'zf_inner>> for SpecialCasePattern<'zf>

impl<'a> ZeroFrom<'a, LanguageStrStrPairVarULE> for LanguageStrStrPair<'a>

impl<'a> ZeroFrom<'a, StrStrPairVarULE> for StrStrPair<'a>

impl<'zf, 'zf_inner> ZeroFrom<'zf, Aliases<'zf_inner>> for Aliases<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, ExemplarCharactersData<'zf_inner>> for ExemplarCharactersData<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, LikelySubtagsExtended<'zf_inner>> for LikelySubtagsExtended<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, LikelySubtagsForLanguage<'zf_inner>> for LikelySubtagsForLanguage<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, LikelySubtagsForScriptRegion<'zf_inner>> for LikelySubtagsForScriptRegion<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, Parents<'zf_inner>> for Parents<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, ScriptDirection<'zf_inner>> for ScriptDirection<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, CanonicalCompositions<'zf_inner>> for CanonicalCompositions<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, DecompositionData<'zf_inner>> for DecompositionData<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, DecompositionTables<'zf_inner>> for DecompositionTables<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, NonRecursiveDecompositionSupplement<'zf_inner>> for NonRecursiveDecompositionSupplement<'zf>

impl<'data> ZeroFrom<'data, RelationULE> for Relation<'data>

impl<'zf, 'zf_inner> ZeroFrom<'zf, Rule<'zf_inner>> for Rule<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, PluralRanges<'zf_inner>> for PluralRanges<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, PluralRulesData<'zf_inner>> for PluralRulesData<'zf>

impl<'zf, 'zf_inner, V: VarULE + ?Sized> ZeroFrom<'zf, PluralElementsPackedCow<'zf_inner, V>> for PluralElementsPackedCow<'zf, V>
where Cow<'zf, PluralElementsPackedULE<V>>: ZeroFrom<'zf, Cow<'zf_inner, PluralElementsPackedULE<V>>>,

impl<'zf, 'zf_inner> ZeroFrom<'zf, PropertyCodePointSet<'zf_inner>> for PropertyCodePointSet<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, PropertyUnicodeSet<'zf_inner>> for PropertyUnicodeSet<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, PropertyEnumToValueNameLinearMap<'zf_inner>> for PropertyEnumToValueNameLinearMap<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, PropertyEnumToValueNameSparseMap<'zf_inner>> for PropertyEnumToValueNameSparseMap<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, PropertyScriptToIcuScriptMap<'zf_inner>> for PropertyScriptToIcuScriptMap<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, PropertyValueNameToEnumMap<'zf_inner>> for PropertyValueNameToEnumMap<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, ScriptWithExtensionsProperty<'zf_inner>> for ScriptWithExtensionsProperty<'zf>

impl<'zf, 'zf_inner, T: TrieValue> ZeroFrom<'zf, PropertyCodePointMap<'zf_inner, T>> for PropertyCodePointMap<'zf, T>
where CodePointTrie<'zf, T>: ZeroFrom<'zf, CodePointTrie<'zf_inner, T>>,

impl<'a> ZeroFrom<'a, str> for HelloWorld<'a>

impl<'zf, 'zf_inner> ZeroFrom<'zf, HelloWorld<'zf_inner>> for HelloWorld<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, LstmData<'zf_inner>> for LstmData<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, LstmDataFloat32<'zf_inner>> for LstmDataFloat32<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, LstmMatrix1<'zf_inner>> for LstmMatrix1<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, LstmMatrix2<'zf_inner>> for LstmMatrix2<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, LstmMatrix3<'zf_inner>> for LstmMatrix3<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, RuleBreakData<'zf_inner>> for RuleBreakData<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, RuleBreakDataOverride<'zf_inner>> for RuleBreakDataOverride<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, UCharDictionaryBreakData<'zf_inner>> for UCharDictionaryBreakData<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, IanaNames<'zf_inner>> for IanaNames<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, IanaToBcp47Map<'zf_inner>> for IanaToBcp47Map<'zf>

impl<'zf, 'zf_inner> ZeroFrom<'zf, WindowsZonesToBcp47Map<'zf_inner>> for WindowsZonesToBcp47Map<'zf>

impl<'zf, Store1, Store2> ZeroFrom<'zf, ZeroAsciiIgnoreCaseTrie<Store1>> for ZeroAsciiIgnoreCaseTrie<Store2>
where Store2: ZeroFrom<'zf, Store1>,

impl<'zf, Store1, Store2> ZeroFrom<'zf, ZeroTrie<Store1>> for ZeroTrie<Store2>
where Store2: ZeroFrom<'zf, Store1>,

impl<'zf, Store1, Store2> ZeroFrom<'zf, ZeroTrieExtendedCapacity<Store1>> for ZeroTrieExtendedCapacity<Store2>
where Store2: ZeroFrom<'zf, Store1>,

impl<'zf, Store1, Store2> ZeroFrom<'zf, ZeroTriePerfectHash<Store1>> for ZeroTriePerfectHash<Store2>
where Store2: ZeroFrom<'zf, Store1>,

impl<'zf, Store1, Store2> ZeroFrom<'zf, ZeroTrieSimpleAscii<Store1>> for ZeroTrieSimpleAscii<Store2>
where Store2: ZeroFrom<'zf, Store1>,

impl<'a, 'b, V: VarULE + ?Sized> ZeroFrom<'a, VarZeroCow<'b, V>> for VarZeroCow<'a, V>

impl<'a, A, B, AE, BE, Format> ZeroFrom<'a, Tuple2VarULE<A, B, Format>> for (AE, BE)
where A: VarULE + ?Sized, B: VarULE + ?Sized, AE: ZeroFrom<'a, A>, BE: ZeroFrom<'a, B>, Format: VarZeroVecFormat,

impl<'a, A, B, C, AE, BE, CE, Format> ZeroFrom<'a, Tuple3VarULE<A, B, C, Format>> for (AE, BE, CE)
where A: VarULE + ?Sized, B: VarULE + ?Sized, C: VarULE + ?Sized, AE: ZeroFrom<'a, A>, BE: ZeroFrom<'a, B>, CE: ZeroFrom<'a, C>, Format: VarZeroVecFormat,

impl<'a, A, B, C, D, AE, BE, CE, DE, Format> ZeroFrom<'a, Tuple4VarULE<A, B, C, D, Format>> for (AE, BE, CE, DE)
where A: VarULE + ?Sized, B: VarULE + ?Sized, C: VarULE + ?Sized, D: VarULE + ?Sized, AE: ZeroFrom<'a, A>, BE: ZeroFrom<'a, B>, CE: ZeroFrom<'a, C>, DE: ZeroFrom<'a, D>, Format: VarZeroVecFormat,

impl<'a, A, B, C, D, E, AE, BE, CE, DE, EE, Format> ZeroFrom<'a, Tuple5VarULE<A, B, C, D, E, Format>> for (AE, BE, CE, DE, EE)
where A: VarULE + ?Sized, B: VarULE + ?Sized, C: VarULE + ?Sized, D: VarULE + ?Sized, E: VarULE + ?Sized, AE: ZeroFrom<'a, A>, BE: ZeroFrom<'a, B>, CE: ZeroFrom<'a, C>, DE: ZeroFrom<'a, D>, EE: ZeroFrom<'a, E>, Format: VarZeroVecFormat,

impl<'a, A, B, C, D, E, F, AE, BE, CE, DE, EE, FE, Format> ZeroFrom<'a, Tuple6VarULE<A, B, C, D, E, F, Format>> for (AE, BE, CE, DE, EE, FE)
where A: VarULE + ?Sized, B: VarULE + ?Sized, C: VarULE + ?Sized, D: VarULE + ?Sized, E: VarULE + ?Sized, F: VarULE + ?Sized, AE: ZeroFrom<'a, A>, BE: ZeroFrom<'a, B>, CE: ZeroFrom<'a, C>, DE: ZeroFrom<'a, D>, EE: ZeroFrom<'a, E>, FE: ZeroFrom<'a, F>, Format: VarZeroVecFormat,

impl<'a, A, B, V> ZeroFrom<'a, VarTupleULE<A, V>> for VarTuple<A, B>
where A: AsULE + 'static, V: VarULE + ?Sized, B: ZeroFrom<'a, V>,

impl<'a, V: VarULE + ?Sized> ZeroFrom<'a, V> for VarZeroCow<'a, V>

impl<'zf, 's, K, V> ZeroFrom<'zf, ZeroMap<'s, K, V>> for ZeroMap<'zf, K, V>
where K: 'static + for<'b> ZeroMapKV<'b> + ?Sized, V: 'static + for<'b> ZeroMapKV<'b> + ?Sized, <K as ZeroMapKV<'zf>>::Container: ZeroFrom<'zf, <K as ZeroMapKV<'s>>::Container>, <V as ZeroMapKV<'zf>>::Container: ZeroFrom<'zf, <V as ZeroMapKV<'s>>::Container>,

impl<'zf, 's, K0, K1, V> ZeroFrom<'zf, ZeroMap2d<'s, K0, K1, V>> for ZeroMap2d<'zf, K0, K1, V>
where K0: 'static + for<'b> ZeroMapKV<'b> + ?Sized, K1: 'static + for<'b> ZeroMapKV<'b> + ?Sized, V: 'static + for<'b> ZeroMapKV<'b> + ?Sized, <K0 as ZeroMapKV<'zf>>::Container: ZeroFrom<'zf, <K0 as ZeroMapKV<'s>>::Container>, <K1 as ZeroMapKV<'zf>>::Container: ZeroFrom<'zf, <K1 as ZeroMapKV<'s>>::Container>, <V as ZeroMapKV<'zf>>::Container: ZeroFrom<'zf, <V as ZeroMapKV<'s>>::Container>,

impl<'zf, T> ZeroFrom<'zf, VarZeroSlice<T>> for &'zf VarZeroSlice<T>
where T: 'static + VarULE + ?Sized,

impl<'zf, T> ZeroFrom<'zf, ZeroSlice<T>> for &'zf ZeroSlice<T>
where T: 'static + AsULE,

impl<'zf, T> ZeroFrom<'zf, ZeroSlice<T>> for ZeroVec<'zf, T>
where T: 'static + AsULE,

impl<'zf, T> ZeroFrom<'zf, ZeroVec<'_, T>> for ZeroVec<'zf, T>
where T: 'static + AsULE,

impl<'zf, T, F: VarZeroVecFormat> ZeroFrom<'zf, VarZeroSlice<T, F>> for VarZeroVec<'zf, T, F>
where T: 'static + VarULE + ?Sized,

impl<'zf, T, F: VarZeroVecFormat> ZeroFrom<'zf, VarZeroVec<'_, T, F>> for VarZeroVec<'zf, T, F>
where T: 'static + VarULE + ?Sized,