use derive_builder::Builder;
use thiserror::Error;
mod sys;
#[cfg(feature = "activity")]
pub mod activity;
#[cfg(feature = "activity")]
pub use activity::{ActivityError, ActivityMethod, ActivitySimulator};
pub use sys::Error as SystemError;
#[derive(Error, Debug)]
pub enum Error {
#[error("builder: {0}")]
Builder(#[from] BuilderError),
#[error("system: {0}")]
System(#[from] SystemError),
#[cfg(feature = "activity")]
#[error("activity: {0}")]
Activity(#[from] ActivityError),
}
pub type Result<T, E = Error> = std::result::Result<T, E>;
#[derive(Builder, Debug)]
#[builder(public, name = "Builder", build_fn(private))]
#[allow(dead_code)] struct Options {
#[builder(default)]
display: bool,
#[builder(default)]
idle: bool,
#[builder(default)]
sleep: bool,
#[builder(setter(into), default = "\"User requested\".to_string()")]
reason: String,
#[builder(setter(into), default = "\"keep-active\".to_string()")]
app_name: String,
#[builder(
setter(into),
default = "\"io.github.omerbustun.keep-active\".to_string()"
)]
app_reverse_domain: String,
}
impl Builder {
pub fn create(&self) -> Result<KeepActive> {
Ok(KeepActive {
_imp: sys::KeepActive::new(self.build()?)?,
})
}
}
pub struct KeepActive {
_imp: sys::KeepActive,
}