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
//! Prelude: Wrapper Types
//!
//! This module re-exports various wrapper types from Rustica to make them available in a single import.
//!
//! # Key Wrapper Types
//!
//! - [`First`], [`Last`]: First/last priority wrappers (useful for Monoid/Ord operations)
//! - [`Max`], [`Min`]: Maximum/minimum value wrappers
//! - [`Product`], [`Sum`]: Product/sum wrappers (numeric Monoids)
//! - [`Memoizer`]: Memoization wrappers
//! - [`Thunk`]: Lazy evaluation wrapper
//!
//! # Usage Examples
//!
//! ```rust
//! use rustica::prelude::wrapper::*;
//! use rustica::traits::semigroup::Semigroup;
//!
//! let a = Sum(3);
//! let b = Sum(4);
//! assert_eq!(a.combine(&b).unwrap(), 7);
//!
//! let m = Max(10);
//! let n = Max(20);
//! assert_eq!(m.combine(&n).unwrap(), 20);
//! ```
//!
//! # Note
//!
//! Wrapper types provide powerful abstractions when used with [`Monoid`], [`Semigroup`], etc.
pub use crateFirst;
pub use crateLast;
pub use crateMax;
pub use crateMemoizer;
pub use crateMin;
pub use crateProduct;
pub use crateSum;
pub use crateThunk;
// Also re-export commonly used traits
pub use crateEvaluate;
pub use crateFunctor;
pub use crateMonoid;
pub use crateSemigroup;