#include "internal.h" static int ·read(void *rdr, int size, int n, void *buf) { return io·read((io·Stream *)rdr, size, n, buf); } static byte ·get(void *rdr) { return io·getbyte((io·Stream *)rdr); } static error ·unget(void *rdr, byte c) { return io·ungetbyte((io·Stream *)rdr, c); } static int ·write(void *wtr, int sz, int n, void *buf) { return io·write((io·Stream *)wtr, sz, n, buf); } static error ·put(void *wtr, byte c) { return io·putbyte((io·Stream *)wtr, c); } static int ·puts(void *wtr, string s) { return io·putstring((io·Stream *)wtr, s); } static int ·seek(void *skr, long off, enum SeekPos whence) { return io·seek((io·Stream *)skr, off, whence); } static long ·tell(void *skr) { return io·tell((io·Stream *)skr); } /* actual interfaces */ io·Reader sys·Reader = (io·Reader){ ·read }; io·Seeker sys·Seeker = (io·Seeker){ ·seek, ·tell }; io·Peeker sys·Peeker = (io·Peeker){ ·get, ·unget }; io·SeekReader sys·SeekReader = (io·SeekReader){ ·seek, ·tell, ·read }; io·PeekReader sys·PeekReader = (io·PeekReader){ ·read, ·get, ·unget }; io·Writer sys·Writer = (io·Writer){ ·write }; io·Putter sys·Putter = (io·Putter){ ·put, ·puts }; io·PutWriter sys·PutWriter = (io·PutWriter){ ·write, ·put, ·puts }; io·ReadWriter sys·ReadWriter = (io·ReadWriter){ ·read, ·write };