author Razvan Caliman <>
Mon, 25 Feb 2019 22:20:53 +0000
changeset 518875 f5629bb3e671ad15ede908de3cc0b2b2be342728
parent 517957 31bb666768271631710ac361e5625e3492cc82b3
child 519309 82cfcc2f5fac53e2c989bff17e84e8fa0f7a1c85
permissions -rw-r--r--
Bug 1529606 - Add Copy Rule button to Changes panel. r=pbro Adds a button that shows up when hovering selectors in the Changes panel. When clicked, it invokes the same Copy Rule behavior implemented for the context menu: copies the full content of the rule with changes applied. The added/changed CSS class names use BEM notation. I intend to refactor the Changes panel stylesheet to BEM in a follow-up patch. Differential Revision:

# Serde &emsp; [![Build Status]][travis] [![Latest Version]][] [![Rustc Version 1.13+]][rustc]

[Build Status]:
[Latest Version]:
[Rustc Version 1.13+]:

**Serde is a framework for *ser*ializing and *de*serializing Rust data structures efficiently and generically.**


You may be looking for:

- [An overview of Serde](
- [Data formats supported by Serde](
- [Setting up `#[derive(Serialize, Deserialize)]`](
- [Examples](
- [API documentation](
- [Release notes](

## Serde in action

Click to show Cargo.toml.
<a href="" target="_blank">Run this code in the playground.</a>


# The core APIs, including the Serialize and Deserialize traits. Always
# required when using Serde.
serde = "1.0"

# Support for #[derive(Serialize, Deserialize)]. Required if you want Serde
# to work for structs and enums defined in your crate.
serde_derive = "1.0"

# Each data format lives in its own crate; the sample code below uses JSON
# but you may be using a different one.
serde_json = "1.0"


extern crate serde_derive;

extern crate serde;
extern crate serde_json;

#[derive(Serialize, Deserialize, Debug)]
struct Point {
    x: i32,
    y: i32,

fn main() {
    let point = Point { x: 1, y: 2 };

    // Convert the Point to a JSON string.
    let serialized = serde_json::to_string(&point).unwrap();

    // Prints serialized = {"x":1,"y":2}
    println!("serialized = {}", serialized);

    // Convert the JSON string back to a Point.
    let deserialized: Point = serde_json::from_str(&serialized).unwrap();

    // Prints deserialized = Point { x: 1, y: 2 }
    println!("deserialized = {:?}", deserialized);

## Getting help

Serde developers live in the #serde channel on [``][irc]. The
\#rust channel is also a good resource with generally faster response time but
less specific knowledge about Serde. If IRC is not your thing or you don't get a
good response, we are happy to respond to [GitHub issues][issues] as well.


## License

Serde is licensed under either of

 * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or

at your option.

### Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in Serde by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.