2 unstable releases
0.2.0 | Apr 13, 2023 |
---|---|
0.1.0 | Apr 13, 2023 |
#2317 in Encoding
6KB
65 lines
serde-format
A tiny trait to format a serializable struct using custom placeholders.
Goals
- Be as lightweight as possible
- Have no dependencies other than [serde] and [serde_json]
Non-goals
- Prioritize performance
- Support any syntax beyond variable substitution
Usage
use serde::Serialize;
use serde_format::Format;
#[derive(Serialize)]
struct Foo {
name: String
}
impl Format for Foo {}
let foo = Foo { name: "Bar".into() };
assert_eq!(foo.format("Hey, {{name}}!"), "Hey, Bar!");
Contributing
We appreciate all kinds of contributions, thank you!
Note on README
Most of the readme is automatically copied from the crate documentation by cargo-sync-readme. This way the readme is always in sync with the docs and examples are tested.
So if you find a part of the readme you'd like to change between <!-- cargo-sync-readme start -->
and <!-- cargo-sync-readme end -->
markers, don't edit README.md
directly, but rather change
the documentation on top of src/lib.rs
and then synchronize the readme with:
cargo sync-readme
(make sure the cargo command is installed):
cargo install cargo-sync-readme
If you have rusty-hook installed the changes will apply automatically on commit.
License
This project is licensed under the MIT license.
Dependencies
~0.5–1MB
~20K SLoC