1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
//! A simple library for weird string manipulation techniques.
//!
//! Strmath is a library that provides a simple way to manipulate strings in a weird way. Such as:
//! * Adding a string to another string or anything that implements the trait Display.
//! * Subtracting a string from another string.
//! * Multiplying a string with another string/chars.
//! * Dividing a string with another string/chars.
//!
//! # Glossary
//! * Str: The main struct that holds the string.
//! * Ops: The module that holds the operations.
//!
//! [fmt]: crate::fmt
//! [imp]: crate::imp
//! [ops]: crate::ops
//!
//! ## Str
//! The main struct that holds the string.
//! It is *just* a simple wrapper around the String struct.
//! ```rust
//! use strmath::Str;
//! let s = Str::from("Hello, ");
//! let x = Str::from("World!");
//! let y = s + x;
//! ```
//!
//! ## Ops
//! The module that holds the operations. Refer to the [_ops_][ops] module for more information.
//! It contains the following operations:
//! * Add
//! * AddAssign
//! * Sub
//! * SubAssign
//! * Mul
//! * MulAssign
//! * Div
//! * DivAssign
//! * Rem
//! * RemAssign
//!
//! ## Implementations
//! The module that holds the implementations. Refer to the [_imp_][imp] module for more information.
//!
//! ## Formatting
//! The module that holds the formatting functions. Refer to the [_fmt_][fmt] module for more information.
pub mod fmt;
pub mod imp;
pub mod ops;
#[cfg(test)]
mod test;
#[derive(Debug, Clone, PartialEq, Default)]
pub struct Str(String);