#![cfg(feature = "unstable")]
use zenoh::key_expr::format::{kedefine, keformat};
#[test]
fn kedefine_reuse() {
kedefine!(
pub gkeys: "zenoh/${group:*}/${member:*}",
);
let mut formatter = gkeys::formatter();
let k1 = keformat!(formatter, group = "foo", member = "bar").unwrap();
assert_eq!(dbg!(k1).as_str(), "zenoh/foo/bar");
formatter.set("member", "*").unwrap();
let k2 = formatter.build().unwrap();
assert_eq!(dbg!(k2).as_str(), "zenoh/foo/*");
dbg!(&mut formatter).group("foo").unwrap();
dbg!(&mut formatter).member("*").unwrap();
let k2 = dbg!(&mut formatter).build().unwrap();
assert_eq!(dbg!(k2).as_str(), "zenoh/foo/*");
let k3 = keformat!(formatter, group = "foo", member = "*").unwrap();
assert_eq!(dbg!(k3).as_str(), "zenoh/foo/*");
keformat!(formatter, group = "**", member = "**").unwrap_err();
}