//! Output encoder trait.
use Cow;
/// Trait for encoding output values for safe rendering in a target context.
///
/// Implementors should return `Cow::Borrowed` when no encoding is necessary
/// (zero-allocation fast path for already-safe strings).
///
/// This trait is intentionally **open** — consumers can add custom encodings.
///
/// # Examples
///
/// ```
/// use secure_output::encode::OutputEncoder;
/// use secure_output::HtmlEncoder;
/// use std::borrow::Cow;
///
/// let encoder = HtmlEncoder;
/// let safe: Cow<str> = encoder.encode("<b>");
/// assert_eq!(safe, "<b>");
/// ```