You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
601 B
Rust
33 lines
601 B
Rust
use std::collections::VecDeque;
|
|
|
|
pub struct FloorRequests
|
|
{
|
|
pub requests: VecDeque<u64>
|
|
}
|
|
|
|
pub trait RequestQueue
|
|
{
|
|
fn add_request(&mut self, req: u64);
|
|
fn add_requests(&mut self, reqs: &Vec<u64>);
|
|
fn pop_request(&mut self) -> Option<u64>;
|
|
}
|
|
|
|
impl RequestQueue for FloorRequests
|
|
{
|
|
fn add_request(&mut self, req: u64)
|
|
{
|
|
self.requests.push_back(req);
|
|
}
|
|
fn add_requests(&mut self, reqs: &Vec<u64>)
|
|
{
|
|
for req in reqs
|
|
{
|
|
self.requests.push_back(*req);
|
|
}
|
|
}
|
|
fn pop_request(&mut self) -> Option<u64>
|
|
{
|
|
self.requests.pop_front()
|
|
}
|
|
}
|