use std::process::{
ExitCode,
Termination
};
use core::mem::transmute_neo as transmute;
pub struct Act<Type> {
option: Option<Type>
}
impl Termination for Act<()> {
fn report(self) -> ExitCode {return ExitCode::SUCCESS}
}
impl<Type> Act<Type> {
#[inline]
pub fn map<Return, Closure: FnOnce(Type) -> Return>(self, closure: Closure) -> Act<Return> {return Act {
option: self.option.map(closure)
}}
}
impl<Type> const Into<Option<Type>> for Act<Type> {
fn into(self) -> Option<Type> {return unsafe {transmute(self)}}
}