use crate::{Error, Signature};
#[cfg(feature = "rand-preview")]
use crate::rand_core::{CryptoRng, RngCore};
pub trait PrehashSigner<S: Signature> {
fn sign_prehash(&self, prehash: &[u8]) -> Result<S, Error>;
}
#[cfg(feature = "rand-preview")]
#[cfg_attr(docsrs, doc(cfg(feature = "rand-preview")))]
pub trait RandomizedPrehashSigner<S: Signature> {
fn sign_prehash_with_rng(
&self,
rng: impl CryptoRng + RngCore,
prehash: &[u8],
) -> Result<S, Error>;
}
pub trait PrehashVerifier<S: Signature> {
fn verify_prehash(&self, prehash: &[u8], signature: &S) -> Result<(), Error>;
}