diff --git a/Cargo.toml b/Cargo.toml index 09651405..88f71237 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "openssl" -version = "0.2.11" +version = "0.2.12" authors = ["Steven Fackler "] license = "Apache-2.0" description = "OpenSSL bindings" @@ -17,4 +17,4 @@ aes_xts = ["openssl-sys/aes_xts"] [dependencies.openssl-sys] path = "openssl-sys" -version = "0.2.11" +version = "0.2.12" diff --git a/openssl-sys/Cargo.toml b/openssl-sys/Cargo.toml index de18ab54..36d97fd9 100644 --- a/openssl-sys/Cargo.toml +++ b/openssl-sys/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "openssl-sys" -version = "0.2.11" +version = "0.2.12" authors = ["Alex Crichton ", "Steven Fackler "] license = "MIT" diff --git a/src/bn/mod.rs b/src/bn/mod.rs index 4861738e..d1a31c0e 100644 --- a/src/bn/mod.rs +++ b/src/bn/mod.rs @@ -493,43 +493,57 @@ pub mod unchecked { use ffi; use super::{BigNum}; - impl<'a> Add<&'a BigNum, BigNum> for &'a BigNum { + impl<'a> Add<&'a BigNum> for &'a BigNum { + type Output = BigNum; + fn add(self, oth: &'a BigNum) -> BigNum { self.checked_add(oth).unwrap() } } - impl<'a> Sub<&'a BigNum, BigNum> for &'a BigNum { + impl<'a> Sub<&'a BigNum> for &'a BigNum { + type Output = BigNum; + fn sub(self, oth: &'a BigNum) -> BigNum { self.checked_sub(oth).unwrap() } } - impl<'a> Mul<&'a BigNum, BigNum> for &'a BigNum { + impl<'a> Mul<&'a BigNum> for &'a BigNum { + type Output = BigNum; + fn mul(self, oth: &'a BigNum) -> BigNum { self.checked_mul(oth).unwrap() } } - impl<'a> Div<&'a BigNum, BigNum> for &'a BigNum { + impl<'a> Div<&'a BigNum> for &'a BigNum { + type Output = BigNum; + fn div(self, oth: &'a BigNum) -> BigNum { self.checked_div(oth).unwrap() } } - impl<'a> Rem<&'a BigNum, BigNum> for &'a BigNum { + impl<'a> Rem<&'a BigNum> for &'a BigNum { + type Output = BigNum; + fn rem(self, oth: &'a BigNum) -> BigNum { self.checked_mod(oth).unwrap() } } - impl<'a> Shl for &'a BigNum { + impl<'a> Shl for &'a BigNum { + type Output = BigNum; + fn shl(self, n: i32) -> BigNum { self.checked_shl(&n).unwrap() } } - impl<'a> Shr for &'a BigNum { + impl<'a> Shr for &'a BigNum { + type Output = BigNum; + fn shr(self, n: i32) -> BigNum { self.checked_shr(&n).unwrap() } @@ -548,7 +562,9 @@ pub mod unchecked { } } - impl Neg for BigNum { + impl Neg for BigNum { + type Output = BigNum; + fn neg(self) -> BigNum { let mut n = self.clone(); n.negate(); diff --git a/src/lib.rs b/src/lib.rs index c89010ba..88a848e4 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,4 +1,4 @@ -#![feature(macro_rules, unsafe_destructor, globs)] +#![feature(macro_rules, unsafe_destructor, globs, associated_types, default_type_params, old_orphan_check)] #![crate_name="openssl"] #![crate_type="rlib"] #![crate_type="dylib"]