INNER CODE UNIT · Rust
run
jub0t/Concat · src/crates/concat-api/src/lib.rs:296
fn run(&mut self, request: Request) -> Result<Reply, ApiError> {
let view = |view: EditorView| Ok(Reply::View(Box::new(view)));
match request {
Request::Version => Ok(Reply::Version(self.version())),
Request::ProjectCreate {
location,
name,
video,
} => view(self.create(&location, &name, video.unwrap_or_default())?),
Request::ProjectOpen { path } => view(self.open(&path)?),
Request::ProjectClose { path, save } => {
self.close(&path, save)?;
Ok(Reply::Done(Done {}))
}
Request::ProjectList => Ok(Reply::Projects(self.recents())),
Request::ProjectGet { path } => view(self.session(&path)?.view()),
Request::ProjectDocument { path } => {
Ok(Reply::Document(self.session(&path)?.document()))