Commit 3fad4c6 1 parent 704cf2f commit 3fad4c6 Copy full SHA for 3fad4c6
File tree 2 files changed +18
-12
lines changed
2 files changed +18
-12
lines changed Original file line number Diff line number Diff line change @@ -16,11 +16,14 @@ Any trait can be made (de)serializable when made into a trait object by adding t
16
16
17
17
``` rust
18
18
trait MyTrait : serde_traitobject :: Serialize + serde_traitobject :: Deserialize {
19
- fn my_method (& self );
19
+ fn my_method (& self );
20
20
}
21
21
22
22
#[derive(Serialize , Deserialize )]
23
- struct Message (#[serde(with = " serde_traitobject" )] Box <dyn MyTrait >);
23
+ struct Message {
24
+ #[serde(with = " serde_traitobject" )]
25
+ message : Box <dyn MyTrait >,
26
+ }
24
27
25
28
// Woohoo, `Message` is now serializable!
26
29
```
@@ -43,13 +46,13 @@ use serde_traitobject as s;
43
46
44
47
#[derive(Serialize , Deserialize , Debug )]
45
48
struct MyStruct {
46
- foo : String ,
47
- bar : usize ,
49
+ foo : String ,
50
+ bar : usize ,
48
51
}
49
52
50
53
let my_struct = MyStruct {
51
- foo : String :: from (" abc" ),
52
- bar : 123 ,
54
+ foo : String :: from (" abc" ),
55
+ bar : 123 ,
53
56
};
54
57
55
58
let erased : s :: Box <dyn s :: Any > = s :: Box :: new (my_struct );
Original file line number Diff line number Diff line change 11
11
//! ```
12
12
//! # use serde_derive::{Serialize, Deserialize};
13
13
//! trait MyTrait: serde_traitobject::Serialize + serde_traitobject::Deserialize {
14
- //! fn my_method(&self);
14
+ //! fn my_method(&self);
15
15
//! }
16
16
//!
17
17
//! #[derive(Serialize, Deserialize)]
18
- //! struct Message(#[serde(with = "serde_traitobject")] Box<dyn MyTrait>);
18
+ //! struct Message {
19
+ //! #[serde(with = "serde_traitobject")]
20
+ //! message: Box<dyn MyTrait>,
21
+ //! }
19
22
//!
20
23
//! // Woohoo, `Message` is now serializable!
21
24
//! ```
39
42
//!
40
43
//! #[derive(Serialize, Deserialize, Debug)]
41
44
//! struct MyStruct {
42
- //! foo: String,
43
- //! bar: usize,
45
+ //! foo: String,
46
+ //! bar: usize,
44
47
//! }
45
48
//!
46
49
//! let my_struct = MyStruct {
47
- //! foo: String::from("abc"),
48
- //! bar: 123,
50
+ //! foo: String::from("abc"),
51
+ //! bar: 123,
49
52
//! };
50
53
//!
51
54
//! let erased: s::Box<dyn s::Any> = s::Box::new(my_struct);
You can’t perform that action at this time.
0 commit comments