#pragma once #define iota(x) 1 << (x) enum { fs·preorder = iota(0), fs·nolinks = iota(1), fs·verbose = iota(2), }; #undef iota typedef struct fs·Walker fs·Walker; typedef struct fs·History fs·History; struct fs·Walker { int fd, lev, max, err; uchar flags : 4; fs·History *hist; struct { void *data; int (*func)(void *data, char *relp, char *absp, io·Stat* info); }; char *base, *end, path[4096]; }; int fs·init(fs·Walker *, char *path); void fs·fini(fs·Walker *); void fs·walk(fs·Walker *);