usestd::sync::Arc;useslahasher::Hash;usecrate::{Signature, SignatureError};/// Trait for signing data.
////// This trait defines the interface for signing data with a specific algorithm.
pubtraitSigner{/// Sign the given data.
////// # Errors
////// Returns an error if the signing operation fails.
fnsign(self: Arc<Self>, hash:Arc<Hash>)->Result<Arc<Signature>, SignatureError>;}