1 2 3 4 5 6 7 8 9 10 11 12
use crate::context::Context; use crate::task::Task; use std::path::PathBuf; pub trait File<T: Sized> { fn from_ctx(ctx: &Context) -> Result<T, String>; fn file_path(&self) -> PathBuf; fn bytes(&self) -> Vec<u8>; fn write(&self) -> Task { Task::file_write(self.file_path(), "Task::file_write", self.bytes()) } }