use crate::time::MediaTime;
pub mod application;
#[doc(hidden)]
pub mod parameters;
pub mod thread;
#[doc(hidden)]
pub mod tracy;
pub use application::{Application, BaseApplication};
pub use tracy::{setup_tracy, TracySetupError};
pub use trotcast::Channel as Sender;
pub use trotcast::Receiver;
#[cfg(feature = "headed")]
pub mod graphics;
#[derive(Debug, Clone, Copy)]
pub struct Time {
elapsed: MediaTime,
delta: MediaTime,
}
impl Time {
pub fn new(elapsed: MediaTime, delta: MediaTime) -> Self {
Self { elapsed, delta }
}
pub fn elapsed(&self) -> MediaTime {
self.elapsed
}
pub fn delta(&self) -> MediaTime {
self.delta
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct Parameter {
name: String,
value: String,
}
impl Parameter {
pub fn new(name: &str, value: &str) -> Self {
Parameter {
name: name.into(),
value: value.into(),
}
}
pub fn new_string(name: String, value: String) -> Self {
Parameter { name, value }
}
pub fn is(&self, name: &str) -> bool {
self.name == name
}
pub fn as_bool(&self) -> Option<bool> {
match self.value.as_str() {
"true" | "TRUE" | "1" => Some(true),
"false" | "FALSE" | "0" => Some(false),
_ => None,
}
}
pub fn as_bool_simple(&self) -> bool {
self.as_bool().unwrap_or(false)
}
pub fn name(&self) -> &str {
&self.name
}
pub fn value(&self) -> &str {
&self.value
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Events {
Close,
}