blob: dd64dc7d4b222478530440190385feae76d93d93 [file] [log] [blame]
// 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};
/// Enum for supported Diagnostics commands.
#[derive(Debug, PartialEq)]
pub enum DiagnosticsMethod {
/// Wraps `fuchsia.diagnostics.Archive.StreamDiagnostics` with default parameters
/// stream_mode=SNAPSHOT, format=JSON, data_type=INSPECT,
/// batch_retrieval_timeout_seconds=60
SnapshotInspect,
}
#[derive(Serialize, Deserialize)]
pub struct SnapshotInspectArgs {
pub selectors: Vec<String>,
pub service_name: String,
}
impl std::str::FromStr for DiagnosticsMethod {
type Err = anyhow::Error;
fn from_str(method: &str) -> Result<Self, Self::Err> {
match method {
"SnapshotInspect" => Ok(DiagnosticsMethod::SnapshotInspect),
_ => return Err(format_err!("invalid Diagnostics Facade method: {}", method)),
}
}
}