pub trait GenericStaticData<T> {
// Required methods
fn set(&self, v: T) -> Result<(), StaticErr<T>>;
fn replace(&self, v: T) -> Result<T, StaticErr<T>>;
unsafe fn unsafe_replace(&self, v: T) -> T;
fn get<'a>(&'a self) -> &'a T;
fn ignore_initialize(&self) -> Result<(), IgnoreInitErr>;
fn ignore_initialize_dont_result(&self);
fn is_init_state(&self) -> bool;
// Provided method
fn is_noinit_state(&self) -> bool { ... }
}