Skip to content
This repository has been archived by the owner on Sep 30, 2023. It is now read-only.
/ dyn_formatting Public archive

A library provides limited Python-style safe dynamic (runtime) formatting support for Rust | Rust 中支持运行时安全动态格式化字符串的库,部分 Python 风格

License

Notifications You must be signed in to change notification settings

cup113/dyn_formatting

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dynamic Formatting README

Lightweight, dynamic, Python-styled string formatting (Only support String, {key} patterns). It only needs std to work.

Escape like {{ or }}.

Install

cargo add dyn_formatting@3.0.0

Examples

use dyn_formatting::dynamic_format;
assert_eq!(
    dynamic_format(
        "I'm {name}. I'm {age} years old now.",
        &[("name", "ABC"), ("age", "20")].into()
    ).unwrap(),
    "I'm ABC. I'm 20 years old now.".to_string()
);
use dyn_formatting::dynamic_format;
use std::collections::HashMap;
let value_age = (15).to_string(); // Make lifetime long enough
let dictionary = HashMap::from([
    ("age", value_age.as_str()),
]);
assert_eq!(
    dynamic_format("{{{age} }}{age}", &dictionary).unwrap(),
    "{15 }15"
)
use dyn_formatting::dynamic_format;
assert!(
    dynamic_format(
        "I'm {name}. I'm {age} years old now.",
        &[("name", "ABC")].into()
    ).is_err() // Key error
);
use dyn_formatting::dynamic_format;
assert!(
    dynamic_format(
        "I'm {name{name}}.",
        &[("name", "ABC")].into()
    ).is_err() // Token error: '{' unmatched.
);

About

A library provides limited Python-style safe dynamic (runtime) formatting support for Rust | Rust 中支持运行时安全动态格式化字符串的库,部分 Python 风格

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages