소스 검색

Merge pull request #29 from gifnksm/master

Implements `Encodable` and `Decodable`
Alex Crichton 10 년 전
부모
커밋
aec75185e5
4개의 변경된 파일6개의 추가작업 그리고 5개의 파일을 삭제
  1. 3 3
      src/bigint.rs
  2. 1 1
      src/complex.rs
  3. 1 0
      src/lib.rs
  4. 1 1
      src/rational.rs

+ 3 - 3
src/bigint.rs

@@ -112,7 +112,7 @@ pub mod BigDigit {
 ///
 /// A `BigUint`-typed value `BigUint { data: vec!(a, b, c) }` represents a number
 /// `(a + b * BigDigit::BASE + c * BigDigit::BASE^2)`.
-#[deriving(Clone)]
+#[deriving(Clone, Encodable, Decodable)]
 pub struct BigUint {
     data: Vec<BigDigit>
 }
@@ -843,7 +843,7 @@ fn get_radix_base(radix: uint) -> (DoubleBigDigit, uint) {
 }
 
 /// A Sign is a `BigInt`'s composing element.
-#[deriving(PartialEq, PartialOrd, Eq, Ord, Clone, Show)]
+#[deriving(PartialEq, PartialOrd, Eq, Ord, Clone, Show, Encodable, Decodable)]
 pub enum Sign { Minus, NoSign, Plus }
 
 impl Neg<Sign> for Sign {
@@ -859,7 +859,7 @@ impl Neg<Sign> for Sign {
 }
 
 /// A big signed integer type.
-#[deriving(Clone)]
+#[deriving(Clone, Encodable, Decodable)]
 pub struct BigInt {
     sign: Sign,
     data: BigUint

+ 1 - 1
src/complex.rs

@@ -18,7 +18,7 @@ use std::num::{Zero, One};
 // probably doesn't map to C's _Complex correctly.
 
 /// A complex number in Cartesian form.
-#[deriving(PartialEq, Clone, Hash)]
+#[deriving(PartialEq, Clone, Hash, Encodable, Decodable)]
 pub struct Complex<T> {
     /// Real portion of the complex number
     pub re: T,

+ 1 - 0
src/lib.rs

@@ -58,6 +58,7 @@
 #![allow(deprecated)] // from_str_radix
 
 extern crate rand;
+extern crate serialize;
 
 pub use bigint::{BigInt, BigUint};
 pub use rational::{Rational, BigRational};

+ 1 - 1
src/rational.rs

@@ -21,7 +21,7 @@ use std::num::{Zero, One, FromStrRadix};
 use bigint::{BigInt, BigUint, Sign, Plus, Minus};
 
 /// Represents the ratio between 2 numbers.
-#[deriving(Clone, Hash)]
+#[deriving(Clone, Hash, Encodable, Decodable)]
 #[allow(missing_docs)]
 pub struct Ratio<T> {
     numer: T,