use crate::conf::ConfDynSeed;
use crate::seeds::{SeedsError, SeedsProvider};
#[derive(Clone, Debug, Default)]
pub struct SimpleSeedsProvider {
seeds: Vec<ConfDynSeed>,
}
impl SimpleSeedsProvider {
#[must_use]
pub fn new(seeds: Vec<ConfDynSeed>) -> Self {
Self { seeds }
}
#[must_use]
pub fn seeds(&self) -> &[ConfDynSeed] {
&self.seeds
}
}
impl SeedsProvider for SimpleSeedsProvider {
fn get_seeds(&self) -> Result<Vec<ConfDynSeed>, SeedsError> {
Ok(self.seeds.clone())
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn round_trip() {
let s = vec![
ConfDynSeed::parse("h1:1:r:d:1").unwrap(),
ConfDynSeed::parse("h2:2:r:d:2").unwrap(),
];
let p = SimpleSeedsProvider::new(s);
let got = p.get_seeds().unwrap();
assert_eq!(got.len(), 2);
assert_eq!(got[0].host(), "h1");
}
}