zerofrom::zero_from

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, WeekDataV1> for WeekDataV1

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

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

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

impl<'zf, 'zf_inner> ZeroFrom<'zf, JapaneseErasV1<'zf_inner>> for JapaneseErasV1<'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, CaseMapUnfoldV1<'zf_inner>> for CaseMapUnfoldV1<'zf>

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

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

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

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

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

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

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, T: TrieValue> ZeroFrom<'zf, CodePointTrie<'zf_inner, T>> for CodePointTrie<'zf, T>
where ZeroVec<'zf, T>: ZeroFrom<'zf, ZeroVec<'zf_inner, T>>,

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

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

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, 'zf_inner> ZeroFrom<'zf, SymbolsV1<'zf_inner>> for SymbolsV1<'zf>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

impl<'zf, 'zf_inner> ZeroFrom<'zf, ListFormatterPatternsV1<'zf_inner>> for ListFormatterPatternsV1<'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, StrStrPairVarULE> for StrStrPair<'a>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

impl<'zf, 'zf_inner> ZeroFrom<'zf, LstmDataV1<'zf_inner>> for LstmDataV1<'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, RuleBreakDataV1<'zf_inner>> for RuleBreakDataV1<'zf>

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

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

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

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

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

impl<'zf, C: ?Sized, T> ZeroFrom<'zf, C> for YokeTraitHack<T>
where T: ZeroFrom<'zf, C>,

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<'zf> ZeroFrom<'zf, FlexZeroVec<'_>> for FlexZeroVec<'zf>

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

impl<'zf> ZeroFrom<'zf, FlexZeroSlice> for FlexZeroVec<'zf>

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, VarZeroVec<'_, T>> for VarZeroVec<'zf, T>
where T: 'static + VarULE + ?Sized,

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

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

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

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

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