ref: 3b6a42aaa1dfb75db06e9bf8cb7953cecefc647f
dir: /lib/bio/test/bio-skipto.myr/
use std use bio const main = { var buf : byte[16] var f /* use the expected write data as read data */ f = std.try(bio.open("data/bio-skipto", bio.Rd)) /* read bar from foobar */ bio.skipto(f, "foo") bio.read(f, buf[:3]) std.assert(std.eq(buf[:3], "bar"), "did not read bar afer foo") /* we're past foobar, read to eof */ bio.skipto(f, "foo") match bio.read(f, buf[:3]) | `std.Err `bio.Eof: /* ok */ | `std.Ok _: std.fatal("expected EOF") | `std.Err e: std.fatal("expected EOF, got {}\n", e) ;; /* Ensure we find a delimiter if it spans a 16k boundary */ f = std.try(bio.open("data/bio-skipto-16kspan", bio.Rd)) if !bio.skipto(f, "ABCDE") std.fatal("failed to find ABCDE spanning boundary") ;; /* Ensure we find a delimiter if it ends on a 16k boundary */ f = std.try(bio.open("data/bio-skipto-16kbound", bio.Rd)) if !bio.skipto(f, "ABCDE") std.fatal("failed to find ABCDE at end of buffer") ;; std.put("success: all reads matched\n") }