1mod string {
2 #[yeter::query]
3 pub fn len(db: &yeter::Database, input: String) -> usize {
4 if input.is_empty() {
5 db.do_effect("Empty string");
6 }
7 input.len()
8 }
9}
10
11fn main() {
12 let db = yeter::Database::new();
13 let len1 = string::len(&db, "".into());
14 for msg in db.effect::<&'static str>() {
15 println!("EFFECT [1]: {}", msg);
16 }
17 let len2 = string::len(&db, "".into());
18 for msg in db.effect::<&'static str>() {
19 println!("EFFECT [2]: {}", msg);
20 }
21 let len3 = string::len(&db, "aaaa".into());
22 for msg in db.effect::<&'static str>() {
23 println!("EFFECT [3]: {}", msg);
24 }
25 assert_eq!(len1, len2);
26 assert_eq!(*len3, 4);
27}