//! The optional type, representing the presence or absence of a thing. use super::preamble::*; pub enum Option { Some(T), None, } impl Option { // pub fn is_some(self) -> bool { // match self { // Option::Some(_) => true, // Option::None() => false, // } // } // pub fn is_none(self: &Self) -> bool { // match self { // Option::Some(_) => false, // Option::None() => true, // } // } // /// Maps from one option space to another // pub fn map(self: Self, f: fn(T) -> U) -> Option { // match self { // Option::Some(value) => Option::Some(f(value)), // Option::None() => Option::None(), // } // } // pub fn and_then(self: Self, f: fn(T) -> Option) -> Option { // match self { // Option::Some(value) => f(value), // Option::None() => Option::None(), // } // } }