e-clients 0.1.6

a rust services link upload: ftp、local、ssh、smb
use std::fs::File;
use std::io::{Read, Seek, Write};

use remotefs::fs::stream::{ReadAndSeek, WriteAndSeek};

pub struct FileStream {
    file: File,
}

impl From<File> for FileStream {
    fn from(file: File) -> Self {
        Self { file }
    }
}

impl Read for FileStream {
    fn read(&mut self, buf: &mut [u8]) -> std::io::Result<usize> {
        self.file.read(buf)
    }
}

impl Seek for FileStream {
    fn seek(&mut self, pos: std::io::SeekFrom) -> std::io::Result<u64> {
        self.file.seek(pos)
    }
}

impl ReadAndSeek for FileStream {}

impl Write for FileStream {
    fn write(&mut self, buf: &[u8]) -> std::io::Result<usize> {
        self.file.write(buf)
    }

    fn flush(&mut self) -> std::io::Result<()> {
        self.file.flush()
    }
}

impl WriteAndSeek for FileStream {}