#![allow(non_snake_case,dead_code)]
use strung::prelude::*;
#[derive(Strung)] struct Test {
num: u32,
name: &'static str,
}
#[derive(Strung)] struct TestTup(u32,&'static str);
#[derive(Strung)] #[strung("%","%")] struct TestCustom {
num: u32,
#[strung(ignore)] nop: NoDsply
}
#[derive(Strung)] struct TestCascade {
#[strung(cascade)]
tup: TestTup
}
struct NoDsply;
fn main(){
let NAMED = Test {num: 1, name: "st"};
let TUPLE = TestTup (1, "st");
let CUSTOM = TestCustom {num: 1, nop: NoDsply};
let text = NAMED.strung("{num}{name}");
println!("strung: {}",&text);
let s: String = "{num}{name}".into();
let text = NAMED.strung(&s);
println!("strung with String: {}",&text);
let text = NAMED.strung("{num}{num}th < {num}{name}");
println!("strung multi: {}",&text);
let text = TUPLE.strung("{0}{1}");
println!("strung tuple: {}",&text);
let text = CUSTOM.strung("%num%st");
println!("strung custom per struct: {}",&text);
let text = CUSTOM.strung_curly("{num}st");
println!("strung_curly: {}",&text);
let text = CUSTOM.strung_curly("{num}st {nop}");
println!("strung ignored: {}",&text);
let text = NAMED.strung_dollar("$num$name");
println!("strung_dollar: {}",&text);
let text = NAMED.strung_dollry("${num}${name}");
println!("strung_dollry: {}",&text);
let text = NAMED.strung_hashtag("#num#name");
println!("strung_hashtag: {}",&text);
let text = NAMED.strung_dynamic("<",">","<num><name>");
println!("strung_dynamic: {}",&text);
strung::set_static("+","+");
let text = NAMED.strung_static("+num++name+");
println!("strung_static[1]: {}",&text);
strung::set_static("[","]");
let text = NAMED.strung_static("[num][name]");
println!("strung_static[2]: {}",&text);
let CASCADE = TestCascade {tup: TestTup(2,"nd")};
let text = CASCADE.strung_dollar("$tup.0$tup.1");
println!("strung_dollar cascading: {}",&text);
let CASCADE = TestCascade {tup: TestTup(2,"nd")};
let text = CASCADE.strung_hashtag("#tup.0#tup.1");
println!("strung_hashtag cascading: {}",&text);
let CASCADE = TestCascade {tup: TestTup(2,"nd")};
let text = CASCADE.strung_curly("{tup.0}{tup.1}");
println!("strung_curly cascading: {}",&text);
let CASCADE = TestCascade {tup: TestTup(2,"nd")};
let text = CASCADE.strung_angle("<tup.0><tup.1>");
println!("strung_angle cascading: {}",&text);
let CASCADE = TestCascade {tup: TestTup(2,"nd")};
let text = CASCADE.strung_dollry("${0.0}${tup.1}");
println!("strung_dollry cascading: {}",&text);
let CASCADE = TestCascade {tup: TestTup(2,"nd")};
let text = CASCADE.strung("{tup.0}{tup.1}");
println!("strung cascading: {}",&text);
let text = CASCADE.strung_dynamic("<",">","<tup.0><tup.1>");
println!("strung_dynamic cascading: {}",&text);
strung::set_static("+","+");
let text = CASCADE.strung_static("+0.0++0.1+");
println!("strung_static cascading: {}",&text);
let text = NAMED.strung_generic::<'<','>'>("<num><name>");
println!("strung_generic: {}",&text);
let text = CASCADE.strung_generic::<'<','>'>("<tup.0><tup.1>");
println!("strung_generic cascading: {}",&text);
}