serde-format

Crates.ioserde-format
lib.rsserde-format
version0.2.0
sourcesrc
created_at2023-04-13 12:08:11.526955
updated_at2023-04-13 16:59:06.119503
descriptionA tiny trait to format a serializable struct using custom placeholders
homepage
repositoryhttps://github.com/imbolc/serde-format
max_upload_size
id838259
size8,658
Imbolc (imbolc)

documentation

README

License Crates.io Docs.rs

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.

Commit count: 3

cargo fmt