#string #replace #multiple #double-array #translation #site #markdown

nightly mreplace

使用 daachorse::CharwiseDoubleArrayAhoCorasick 进行多字符串替换

7 个版本

新版本 0.1.7 2024年8月17日
0.1.6 2024年6月13日
0.1.5 2024年2月29日
0.1.3 2023年12月8日
0.1.2 2023年10月27日

10#double-array

每月下载量:36

MulanPSL-2.0

6KB
53

mreplace

使用 daachorse::CharwiseDoubleArrayAhoCorasick 进行多字符串替换

use mreplace::Mreplace;

#[static_init::dynamic]
static RENDER: Mreplace = Mreplace::new(["${host}", "${action}", "${code}"]).unwrap();

#[test]
fn test_replace() {
  let txt = "${host} ${action} Code: ${code} .";
  let args = ["3Ti.Site", "SignUp", "XV1z"];
  let result = "3Ti.Site SignUp Code: XV1z .";
  assert_eq!(RENDER.replace(txt, args), result);
}

#[cfg(feature = "macro")]
mod test_macro {
  use mreplace::mreplace;
  mreplace!(
      RENDER2: host action code;
      RENDER3: host action code
  );
  #[test]
  fn test_replace() {
    let txt = "${host} ${action} Code: ${code} .";
    let args = ["3Ti.Site", "SignUp", "XV1z"];
    let result = "3Ti.Site SignUp Code: XV1z .";
    assert_eq!(RENDER2.replace(txt, &args[..]), result);
    assert_eq!(RENDER3.replace(txt, &args[..]), result);
  }
}

关于

本项目是 i18n.site ⋅ 国际化解决方案 的开源组件。

关于

本项目为 i18n.site ⋅ 国际化解决方案 的开源组件。

依赖

~205KB