use crate::cglue::*;
use crate::prelude::v1::Result;
pub trait ConnectorCpuState: for<'a> ConnectorCpuStateInner<'a> {}
impl<T: for<'a> ConnectorCpuStateInner<'a>> ConnectorCpuState for T {}
#[cfg_attr(feature = "plugins", cglue_trait)]
#[int_result]
pub trait ConnectorCpuStateInner<'a>: Send {
#[wrap_with_obj(crate::connector::cpu_state::CpuState)]
type CpuStateType: crate::connector::cpu_state::CpuState + 'a;
#[wrap_with_group(crate::connector::cpu_state::IntoCpuState)]
type IntoCpuStateType: crate::connector::cpu_state::CpuState + 'static;
fn cpu_state(&'a mut self) -> Result<Self::CpuStateType>;
fn into_cpu_state(self) -> Result<Self::IntoCpuStateType>;
}
#[cfg(feature = "plugins")]
cglue_trait_group!(IntoCpuState, { CpuState, Clone }, {});
#[cfg_attr(feature = "plugins", cglue_trait)]
#[int_result]
#[cglue_forward]
pub trait CpuState {
fn pause(&mut self);
fn resume(&mut self);
}