mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-06-13 00:51:02 +00:00
Update to rust HEAD
This commit is contained in:
+12
-4
@@ -31,12 +31,16 @@ impl ArrayBuilder {
|
||||
builder
|
||||
}
|
||||
|
||||
pub fn push_array(self, f: |ArrayBuilder| -> ArrayBuilder) -> ArrayBuilder {
|
||||
pub fn push_array<F>(self, f: F) -> ArrayBuilder where
|
||||
F: FnOnce(ArrayBuilder) -> ArrayBuilder
|
||||
{
|
||||
let builder = ArrayBuilder::new();
|
||||
self.push(f(builder).unwrap())
|
||||
}
|
||||
|
||||
pub fn push_object(self, f: |ObjectBuilder| -> ObjectBuilder) -> ArrayBuilder {
|
||||
pub fn push_object<F>(self, f: F) -> ArrayBuilder where
|
||||
F: FnOnce(ObjectBuilder) -> ObjectBuilder
|
||||
{
|
||||
let builder = ObjectBuilder::new();
|
||||
self.push(f(builder).unwrap())
|
||||
}
|
||||
@@ -61,12 +65,16 @@ impl ObjectBuilder {
|
||||
builder
|
||||
}
|
||||
|
||||
pub fn insert_array(self, key: String, f: |ArrayBuilder| -> ArrayBuilder) -> ObjectBuilder {
|
||||
pub fn insert_array<F>(self, key: String, f: F) -> ObjectBuilder where
|
||||
F: FnOnce(ArrayBuilder) -> ArrayBuilder
|
||||
{
|
||||
let builder = ArrayBuilder::new();
|
||||
self.insert(key, f(builder).unwrap())
|
||||
}
|
||||
|
||||
pub fn insert_object(self, key: String, f: |ObjectBuilder| -> ObjectBuilder) -> ObjectBuilder {
|
||||
pub fn insert_object<F>(self, key: String, f: F) -> ObjectBuilder where
|
||||
F: FnOnce(ObjectBuilder) -> ObjectBuilder
|
||||
{
|
||||
let builder = ObjectBuilder::new();
|
||||
self.insert(key, f(builder).unwrap())
|
||||
}
|
||||
|
||||
+13
-13
@@ -60,8 +60,8 @@ the code for these traits: `#[derive_serialize]` and `#[derive_deserialize]`.
|
||||
To serialize using `Serialize`:
|
||||
|
||||
```rust
|
||||
#![feature(phase, old_orphan_check)]
|
||||
#[phase(plugin)]
|
||||
#![feature(plugin)]
|
||||
#[plugin]
|
||||
extern crate serde_macros;
|
||||
extern crate serde;
|
||||
|
||||
@@ -110,8 +110,8 @@ A basic `ToJson` example using a BTreeMap of attribute name / attribute value:
|
||||
|
||||
|
||||
```rust
|
||||
#![feature(phase, old_orphan_check)]
|
||||
#[phase(plugin)]
|
||||
#![feature(plugin)]
|
||||
#[plugin]
|
||||
extern crate serde_macros;
|
||||
extern crate serde;
|
||||
|
||||
@@ -142,8 +142,8 @@ fn main() {
|
||||
Or you can use the helper type `ObjectBuilder`:
|
||||
|
||||
```rust
|
||||
#![feature(phase, old_orphan_check)]
|
||||
#[phase(plugin)]
|
||||
#![feature(plugin)]
|
||||
#[plugin]
|
||||
extern crate serde_macros;
|
||||
extern crate serde;
|
||||
|
||||
@@ -173,8 +173,8 @@ fn main() {
|
||||
To deserialize a JSON string using `Deserialize` trait:
|
||||
|
||||
```rust
|
||||
#![feature(phase, old_orphan_check)]
|
||||
#[phase(plugin)]
|
||||
#![feature(plugin)]
|
||||
#[plugin]
|
||||
extern crate serde_macros;
|
||||
extern crate serde;
|
||||
|
||||
@@ -205,8 +205,8 @@ Create a struct called `TestStruct1` and serialize and deserialize it to and fro
|
||||
using the serialization API, using the derived serialization code.
|
||||
|
||||
```rust
|
||||
#![feature(phase, old_orphan_check)]
|
||||
#[phase(plugin)]
|
||||
#![feature(plugin)]
|
||||
#[plugin]
|
||||
extern crate serde_macros;
|
||||
extern crate serde;
|
||||
|
||||
@@ -245,8 +245,8 @@ This example use the ToJson impl to deserialize the JSON string.
|
||||
Example of `ToJson` trait implementation for TestStruct1.
|
||||
|
||||
```rust
|
||||
#![feature(phase, old_orphan_check)]
|
||||
#[phase(plugin)]
|
||||
#![feature(plugin)]
|
||||
#[plugin]
|
||||
extern crate serde_macros;
|
||||
extern crate serde;
|
||||
|
||||
@@ -1792,7 +1792,7 @@ mod bench {
|
||||
let json = encoder_json(count);
|
||||
|
||||
b.iter(|| {
|
||||
assert_eq!(json.pretty().to_string(), src);
|
||||
assert_eq!(json.to_string(), src);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
+2
-4
@@ -1,14 +1,12 @@
|
||||
#![feature(macro_rules, phase)]
|
||||
#![feature(plugin)]
|
||||
#![crate_type = "dylib"]
|
||||
#![crate_type = "rlib"]
|
||||
|
||||
#![feature(associated_types, old_orphan_check)]
|
||||
|
||||
// test harness access
|
||||
#[cfg(test)]
|
||||
extern crate test;
|
||||
|
||||
#[phase(plugin)]
|
||||
#[plugin]
|
||||
extern crate serde_macros;
|
||||
|
||||
#[cfg(test)]
|
||||
|
||||
Reference in New Issue
Block a user