5 releases

0.1.1 Nov 19, 2023
0.1.0 Nov 5, 2023
0.0.3 Nov 2, 2023
0.0.2 Nov 2, 2023
0.0.1 Nov 2, 2023

#289 in #replace

Download history 3/week @ 2024-02-22 6/week @ 2024-02-29 6/week @ 2024-03-07 4/week @ 2024-03-14 6/week @ 2024-03-28 8/week @ 2024-04-04 58/week @ 2024-04-11 34/week @ 2024-04-18 186/week @ 2024-04-25

289 downloads per month
Used in 3 crates (2 directly)

Apache-2.0

7KB
122 lines

mreplace

use daachorse::CharwiseDoubleArrayAhoCorasick for multiple string replace

use lazy_static::lazy_static;
use mreplace::Mreplace;

lazy_static! {
  static ref 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);
  }
}

Dependencies

~2.5MB
~95K SLoC