provides a MaybeOwned<'a,T>
type different to std's Cow
it implements From<T>
and From<&'a T>
and does not require ToOwned
This crate provides a MaybeOwned<'a,T>
enum. Different to std::borrow::Cow
it
implements From<T>
and From<&'a T>
and does not require a ToOwned
implementation.
While this can be nice for API's mainly consuming T's not implementing ToOwned
or implementing
ToOwned
through Clone
it also means it's borrowed version of String
is
&String
and not &str
making it less performant for cases like String
or Vec
.
Documentation can be viewed on docs.rs.
Take a look at the examples dir and the documentation for more complete examples.
The main benefit of MaybeOwned
over Cow
is for API design,
allowing API consumer to pass in both T
and &'a T
:
```rust
//... in a trait implementation
fn register
//... in usage // use owned data registry.register(id1, dataowned); // use a reference to the data registry.register(id2, &dataref); // it ok to use the same reference again registry.register(id3, &data_ref); //... ```
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.