// This file is @generated by prost-build.
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Cpu {
    #[prost(string, optional, tag = "1")]
    pub name: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(uint32, optional, tag = "2")]
    pub socket_count: ::core::option::Option<u32>,
    #[prost(uint64, optional, tag = "3")]
    pub base_freq_khz: ::core::option::Option<u64>,
    #[prost(string, optional, tag = "4")]
    pub virtualization_technology: ::core::option::Option<
        ::prost::alloc::string::String,
    >,
    #[prost(bool, optional, tag = "5")]
    pub is_virtual_machine: ::core::option::Option<bool>,
    #[prost(uint64, optional, tag = "6")]
    pub l1_combined_cache_bytes: ::core::option::Option<u64>,
    #[prost(uint64, optional, tag = "7")]
    pub l2_cache_bytes: ::core::option::Option<u64>,
    #[prost(uint64, optional, tag = "8")]
    pub l3_cache_bytes: ::core::option::Option<u64>,
    #[prost(uint64, optional, tag = "9")]
    pub l4_cache_bytes: ::core::option::Option<u64>,
    #[prost(float, required, tag = "10")]
    pub total_usage_percent: f32,
    #[prost(float, required, tag = "11")]
    pub kernel_usage_percent: f32,
    #[prost(float, repeated, packed = "false", tag = "12")]
    pub core_usage_percent: ::prost::alloc::vec::Vec<f32>,
    #[prost(float, repeated, packed = "false", tag = "13")]
    pub core_kernel_usage_percent: ::prost::alloc::vec::Vec<f32>,
    #[prost(uint64, required, tag = "14")]
    pub current_frequency_mhz: u64,
    #[prost(float, optional, tag = "15")]
    pub temperature_celsius: ::core::option::Option<f32>,
    #[prost(uint64, required, tag = "16")]
    pub total_process_count: u64,
    #[prost(uint64, required, tag = "17")]
    pub total_thread_count: u64,
    #[prost(uint64, required, tag = "18")]
    pub total_handle_count: u64,
    #[prost(uint64, required, tag = "19")]
    pub uptime_seconds: u64,
    #[prost(string, optional, tag = "20")]
    pub frequency_driver: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "21")]
    pub frequency_governor: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "22")]
    pub power_preference: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(float, optional, tag = "23")]
    pub power_draw_w: ::core::option::Option<f32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CpuRequest {}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CpuResponse {
    #[prost(oneof = "cpu_response::Response", tags = "1, 2")]
    pub response: ::core::option::Option<cpu_response::Response>,
}
/// Nested message and enum types in `CpuResponse`.
pub mod cpu_response {
    #[derive(serde::Serialize, serde::Deserialize)]
    #[serde(rename_all = "snake_case")]
    #[derive(strum::EnumIter)]
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Response {
        #[prost(message, tag = "1")]
        Cpu(super::Cpu),
        #[prost(message, tag = "2")]
        Error(super::CpuResponseError),
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CpuResponseError {}
