//! Signing trait for cryptographic key management abstraction.
//!
//! This module provides the [`Signer`] trait which abstracts over signing
//! operations, allowing different key management strategies (in-memory keys,
//! hardware security modules, remote signing services, etc.).
use ;
use FutureForm;
/// A trait for signing data with an ed25519 key.
///
/// This abstraction allows different key management strategies:
/// - In-memory keys via [`memory::MemorySigner`]
/// - Hardware security modules
/// - Remote signing services
/// - Key derivation schemes
///
/// For synchronous signers, the async overhead is negligible.
///
/// # Sealing Payloads
///
/// Use [`Signed::seal`](crate::signed::Signed::seal) to sign a payload:
///
/// ```ignore
/// Signed::seal::<Sendable, _>(&signer, payload).await
/// ```