code wiki / _hdl_build / _locator_authored.nx

_locator_authored.nx source

↩ module page · 13 lines · 845 B

1// AUTHORED BY THE NISHI BUILDER (locator template) -- content-addressed cross-device locator, bits-up 2import "nx_sha256.nx" 3func locator_make(text: *u8, n: i64, offset: i64, loc: *u8) -> i64 { sha256_digest(text, n, loc); let p: *i64=((loc as i64)+32) as *i64; p[0]=offset; return 0 } 4func locator_resolve(text: *u8, n: i64, loc: *u8) -> i64 { let id: *u8=sys_mmap(32); sha256_digest(text, n, id); var i: i64=0; while i<32 { if id[i]!=loc[i] { return 0-1 } i=i+1 } let p: *i64=((loc as i64)+32) as *i64; return p[0] } 5func main() -> i64 { 6 let loc: *u8=sys_mmap(40) 7 locator_make("Hello Reader World" as *u8, 18, 7, loc) 8 let r1: i64=locator_resolve("Hello Reader World" as *u8, 18, loc) 9 let r2: i64=locator_resolve("Hello Readez World" as *u8, 18, loc) 10 if r1==7 { if r2==(0-1) { sys_exit(0) } } 11 sys_exit(1) 12 return 1 13}