///|
fn review_report() -> String {
let before_rules =
#|// ===BEGIN ICANN DOMAINS===
#|app
#|co.uk
#|// ===END ICANN DOMAINS===
let after_rules =
#|// ===BEGIN ICANN DOMAINS===
#|app
#|co.uk
#|// ===END ICANN DOMAINS===
#|// ===BEGIN PRIVATE DOMAINS===
#|glideos.app
#|// ===END PRIVATE DOMAINS===
let before = @moonsuffix.SuffixList::parse(before_rules).unwrap()
let after = @moonsuffix.SuffixList::parse(after_rules).unwrap()
let ordinary = before.lookup("api.shop.example.co.uk").unwrap()
let old_snapshot = before.snapshot("before-private-rule")
let new_snapshot = after.snapshot("after-private-rule")
let host_impact = old_snapshot.analyze_impact(
new_snapshot,
["api.glideos.app"],
@moonsuffix.LookupOptions::browser_default(),
)
let cookie_impact = old_snapshot.analyze_cookie_scope_impact(
new_snapshot,
[@moonsuffix.CookieScopeInput::new("api.glideos.app", Some(".glideos.app"))],
@moonsuffix.LookupOptions::browser_default(),
)
let changed_host = host_impact.impacts()[0]
let old_host = changed_host.before().unwrap()
let new_host = changed_host.after().unwrap()
let changed_cookie = cookie_impact.impacts()[0]
let old_cookie = changed_cookie.before().unwrap()
let cookie_after = match changed_cookie.after() {
Ok(_) => "accepted"
Err(error) => error.message()
}
"lookup api.shop.example.co.uk: suffix=\{ordinary.public_suffix()}, registrable=\{ordinary.registrable_domain().unwrap()}\n" +
"PSL update: +PRIVATE glideos.app\n" +
"api.glideos.app: registrable \{old_host.registrable_domain().unwrap()} -> \{new_host.registrable_domain().unwrap()}\n" +
"Cookie Domain=.glideos.app: \{old_cookie.domain()} accepted -> \{cookie_after}\n" +
"changed hosts=\{host_impact.changed_count()}, changed Cookie scopes=\{cookie_impact.changed_count()}"
}
///|
fn main {
println(review_report())
}