/// A wrapper type that provides fluent-style assertions for a given value.
///
/// Constructed using the [`Shouldable::should`] method.
/// Returns a reference to the underlying value.
///
/// This can be useful for writing custom assertions or debugging.
/// A trait implemented for all types to enable fluent assertions using [`Should<T>`].
///
/// Call `.should()` on any value to access fluent assertion methods:
///
/// ```
/// use shoulds::Shouldable;
///
/// let x = 42;
/// x.should().eq(&42);
/// ```