INNER CODE UNIT · Rust
dispatch
jub0t/Concat · src/crates/concat-api/src/lib.rs:291
pub fn dispatch(&mut self, request: Request) -> Response {
self.jobs.reap();
self.run(request).into()
}
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 {}))