Crate cow2

Crate cow2 

Source
Expand description

Like Cow<'_, B>, but B is covariant

Implemented similar to rust#96312

Since std::borrow::Cow uses associated type, it invariant, see rust#115799 for details

§Examples

Use std::borrow::Cow compile-fail case:

use std::borrow::Cow;

fn foo<'a>(_: Cow<'a, [Cow<'a, str>]>) { }
fn bar<'a>(x: Cow<'a, [Cow<'static, str>]>) {
    foo(x);
}

Use cow2::Cow compile-passed case:

use cow2::Cow;

fn foo<'a>(_: Cow<'a, [Cow<'a, str>]>) { }
fn bar<'a>(x: Cow<'a, [Cow<'static, str>]>) {
    foo(x);
}

Enums§

CowT
Auxiliary enum of Cow

Type Aliases§

Cow
Like borrow::Cow<'a, B>, but B is covariant