| // Copyright 2020 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| use serde::{Deserialize, Serialize}; |
| |
| pub enum ComponentMethod { |
| Launch, |
| List, |
| Search, |
| } |
| |
| impl std::str::FromStr for ComponentMethod { |
| type Err = anyhow::Error; |
| fn from_str(method: &str) -> Result<Self, Self::Err> { |
| match method { |
| "Launch" => Ok(ComponentMethod::Launch), |
| "List" => Ok(ComponentMethod::List), |
| "Search" => Ok(ComponentMethod::Search), |
| _ => return Err(format_err!("Invalid Component Facade method: {}", method)), |
| } |
| } |
| } |
| |
| #[derive(Deserialize, Debug)] |
| pub struct ComponentSearchRequest { |
| pub name: Option<String>, |
| } |
| |
| #[derive(Serialize, Deserialize, Debug)] |
| pub enum ComponentSearchResult { |
| Success, |
| NotFound, |
| } |
| |
| #[derive(Deserialize, Debug)] |
| pub struct ComponentLaunchRequest { |
| pub url: Option<String>, |
| pub arguments: Option<Vec<String>>, |
| pub wait_until_stop: bool, |
| } |
| |
| #[derive(Serialize, Deserialize, Debug)] |
| pub enum ComponentLaunchResponse { |
| Success, |
| Fail(i64), |
| } |