[−][src]Macro kayrx_ui::fabric::binary_format
This macro is used for a format that can be encoded as Binary. It is used in conjunction with a type definition for a tuple struct with one (publicly accessible) element of a generic type. Not all types that can be encoded as Binary can be encoded as Text. As such, this macro should be paired with the text_format macro where such an encoding works (e.g., JSON), or with the text_format_is_an_error macro for binary-only formats (e.g., MsgPack).
Rely on serde's to_vec
and from_vec
The simplest form of this macro relegates all the work to serde's
to_vec
function for serialization and serde's from_vec
for
deseriaization.
Examples
Binary that is also Text
use yew::{binary_format, text_format}; pub struct Json<T>(pub T); text_format!(Json based on serde_json); binary_format!(Json based on serde_json);
Binary only
use rmp_serde; use yew::{binary_format, text_format_is_an_error}; pub struct MsgPack<T>(pub T); binary_format!(MsgPack based on rmp_serde); text_format_is_an_error!(MsgPack);
Supply serialization and deserialization functions
In addition to the "based on" form of this macro demonstrated above,
you can use the three parameter second form to supply
non-standard (i.e., alternatives to serde's to_vec
and/or from_slice
)
helpers as the second and third parameters.
Example
use bincode; use yew::{binary_format, text_format_is_an_error}; pub struct Bincode<T>(pub T); binary_format!(Bincode, bincode::serialize, bincode::deserialize); text_format_is_an_error!(Bincode);