Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::cell::RefCell;
- pub struct IxgbeDevice<'a> {
- rx_queues: Vec<IxgbeRxQueue<'a>>,
- }
- struct IxgbeRxQueue<'a> {
- pool: Packetpool<'a>,
- }
- pub struct Packetpool<'a> {
- free_stack: RefCell<Vec<Packet<'a>>>,
- }
- pub struct Packet<'a> {
- pool: &'a Packetpool<'a>,
- }
- impl<'a> IxgbeDevice<'a> {
- fn init() -> IxgbeDevice<'a> {
- let mut dev = IxgbeDevice {
- rx_queues: Vec::new(),
- };
- dev.init_queue();
- dev
- }
- fn init_queue(&mut self) {
- let mempool = Packetpool {
- free_stack: RefCell::new(vec![]),
- };
- let rx_queue = IxgbeRxQueue {
- pool: mempool,
- };
- self.rx_queues.push(rx_queue);
- self.rx_queues[0].pool.free_stack.borrow_mut().push(
- Packet {
- pool: &self.rx_queues[0].pool,
- }
- );
- }
- }
- fn main() {
- let _dev = IxgbeDevice::init();
- }
Add Comment
Please, Sign In to add comment