https://github.com/codx-dev/borrown
Borrowed or owned, simplified for no-std.
https://github.com/codx-dev/borrown
Last synced: 4 months ago
JSON representation
Borrowed or owned, simplified for no-std.
- Host: GitHub
- URL: https://github.com/codx-dev/borrown
- Owner: codx-dev
- License: apache-2.0
- Created: 2022-02-15T22:17:57.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-02-15T22:26:17.000Z (over 3 years ago)
- Last Synced: 2025-02-28T05:57:47.078Z (4 months ago)
- Language: Rust
- Size: 6.84 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# Borrown - Borrowed or owned, simplified for no-std.
[](https://crates.io/crates/borrown)
[](https://docs.rs/borrown/)
[]()Borrow or owned, inspired by [Cow](https://doc.rust-lang.org/std/borrow/enum.Cow.html).
Provide common trait implementations over `T`.
## Example
```rust
use borrown::Borrown;#[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord)]
struct Foo {
pub _val: usize,
}let x = Foo { _val: 0 };
let b = Borrown::Borrowed(&x);let _: &Foo = b.as_ref();
let _: &mut Foo = b.clone().as_mut();
let _: Borrown<'_, Foo> = Default::default();
let _: usize = *b;
let _: bool = b == Borrown::Borrowed(&x);
let _: bool = b <= Borrown::Borrowed(&x);
let _: Borrown<'_, Foo> = b.clone();
let _: Foo = b.into_owned();println!("{:?}", Borrown::Borrowed(&x));
impl core::ops::Deref for Foo {
type Target = usize;fn deref(&self) -> &usize {
&self._val
}
}
```