# SCalc A type that ensures calculation safety and prevents itself from overflow ## Get started ``` use scalc::SCell; fn main() -> Result<(), String> { let a = SCell::::new(12) * SCell::::new(3); assert_eq!(*a.ok_or("overflow")?.get_data(), 36); // Addition will result in `None` in the presence of overflow behavior(s) let a = SCell::::new(std::i32::MAX) + SCell::::new(1); assert!(a.is_none()); Ok(()) } ``` You can also use [*New Type Idiom*](https://doc.rust-lang.org/stable/rust-by-example/generics/new_types.html) in combination of [`derive_more`](https://github.com/JelteF/derive_more) to have better experience.