use failure;
#[derive(Debug, Fail)]
pub enum Error {
#[fail(display = "invalid argument name: {}", argument_name)]
InvalidArgument {
argument_name: &'static str,
},
#[fail(display = "signing failed")]
SigningFailed,
#[fail(display = "encryption failed")]
EncryptionFailed,
#[fail(display = "decryption failed")]
DecryptionFailed,
#[fail(display = "key generation failed")]
KeyGenerationFailed,
#[fail(display = "invalid q_bits and/or p_bits values")]
InvalidBitSizes,
#[fail(display = "arguments are not on the same EC")]
InconsistentCurves,
}
pub type Result<T> = ::std::result::Result<T, failure::Error>;