summaryrefslogtreecommitdiffstats
path: root/src/platform/tun.rs
blob: 45fd5912478f60b2db358fb31bad47ca30c719c9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
use std::sync::atomic::AtomicUsize;
use std::sync::Arc;

pub trait Tun: Send + Sync {
    type Error;

    fn new(mtu: Arc<AtomicUsize>) -> Self;
    fn read(&self, dst: &mut [u8]) -> Result<usize, Self::Error>;
    fn write(&self, src: &[u8]) -> Result<(), Self::Error>;
}