use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
use crate::Bss;
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct Scan {
bss_list: Vec<Bss>,
start_time: DateTime<Utc>,
end_time: DateTime<Utc>,
}
impl Scan {
pub(crate) fn new(
bss_list: Vec<Bss>,
start_time: DateTime<Utc>,
end_time: DateTime<Utc>,
) -> Self {
Self {
bss_list,
start_time,
end_time,
}
}
pub fn bss_list(&self) -> &[Bss] {
&self.bss_list
}
pub fn start_time(&self) -> DateTime<Utc> {
self.start_time
}
pub fn end_time(&self) -> DateTime<Utc> {
self.end_time
}
pub fn duration(&self) -> std::time::Duration {
(self.end_time() - self.start_time())
.to_std()
.unwrap_or_default()
}
}