# rose_bloom
`rose_bloom` is a crate for passing out references that won't move when you push to it. It is also thread-safe, so you can use it as a concurrent queue if you don't care about freeing memory as you go along. It is lock-free.
Many operations are O(lg n). This will still be extremely fast.
## Example
```rust
use rose_bloom::Rose;
let rose = Rose::new();
let out1 = rose.push(1);
rose.push(2);
rose.push(3);
println!("{out1}"); // 1
```
## Installation
Add this to your Cargo.toml:
```toml
[dependencies]
rose_bloom = "0.1"
```
## `#![no_std]`
This crate is `#![no_std]` but does require `alloc`.
## Licenses
- [MIT](https://choosealicense.com/licenses/mit/)
- [Unlicense](https://choosealicense.com/licenses/unlicense/)