Info
This post is auto-generated from RSS feed The Rust Programming Language Forum - Latest topics. Source: Recommendations about references to other field of the same struct
I've these types that compile (I'm surprised that using the references in the same struct compiles), but I can't use them later.
Here it's the whole example:
use futures::{stream, StreamExt};
use std::{
collections::{BTreeMap, HashMap},
vec::IntoIter,
};
trait Processable {
fn code(&self) -> String;
fn priority(&self) -> u32;
}
struct Operation {
queue: stream::Iter<IntoIter<Item>>,
}
struct Item {
code: String,
priority: u8,
}
struct Processor<'a, T: Processable> {
processables: HashMap<String, T>,
priority: BTreeMap<u32, Vec<&'a T>>,
}
So, my question is, what's the best approach?
Pin
: I don't fully understand it, so I'd rather avoid it unless someone explain it to me.Rc
: It's !Send
, so I couldn't use it because I'm using async code. Apart from that, allocating hundreds or thousands of Rc
+ Weak
doesn't looks good.Arc
: I don't need Sync
, Mutex
, etc.BTreeMap
is simple but it means looking up in the HashMap
for everything, instead of just accessing the T
through a reference.What would you do?
3 posts - 3 participants
🏷️ rust_feed