use std::net::IpAddr;
use crate::state::TimedPrefix;
use crate::update::Update;
pub trait StateStore: Send + Sync + 'static {
fn get_peers(&self) -> Vec<(IpAddr, IpAddr)>;
fn add_peer(&mut self, router_addr: &IpAddr, peer_addr: &IpAddr);
fn remove_peer(&mut self, router_addr: &IpAddr, peer_addr: &IpAddr);
fn get_updates_by_peer(&self, router_addr: &IpAddr, peer_addr: &IpAddr) -> Vec<TimedPrefix>;
fn update(&mut self, router_addr: &IpAddr, peer_addr: &IpAddr, update: &Update) -> bool;
}