pub trait FileServer {
// Required methods
fn get_handle(
&mut self,
report: &mut Report,
span: Option<Span>,
filename: &str
) -> Result<FileServerHandle, ()>;
fn get_filename(&self, file_handle: FileServerHandle) -> &str;
fn get_bytes(
&self,
report: &mut Report,
span: Option<Span>,
file_handle: FileServerHandle
) -> Result<Vec<u8>, ()>;
fn write_bytes(
&mut self,
report: &mut Report,
span: Option<Span>,
filename: &str,
data: &Vec<u8>
) -> Result<(), ()>;
// Provided methods
fn get_handle_unwrap(&mut self, filename: &str) -> FileServerHandle { ... }
fn get_bytes_unwrap(&self, file_handle: FileServerHandle) -> Vec<u8> ⓘ { ... }
fn get_str(
&self,
report: &mut Report,
span: Option<Span>,
file_handle: FileServerHandle
) -> Result<String, ()> { ... }
fn get_str_unwrap(&self, file_handle: FileServerHandle) -> String { ... }
fn get_excerpt(&self, span: Span) -> String { ... }
}