cow2

Crates.iocow2
lib.rscow2
version0.2.6
created_at2025-05-31 07:58:04.438697+00
updated_at2025-06-01 02:10:02.36368+00
descriptionLike Cow, but B is covariant
homepage
repositoryhttps://github.com/A4-Tacks/cow2-rs
max_upload_size
id1696154
size17,302
A4-Tacks (A4-Tacks)

documentation

README

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);
}
Commit count: 13

cargo fmt