ref: 8d6c1b01c6e17894cb1054d954d18272e71e5aae
dir: /types.myr/
use std use termdraw pkg = type irc = struct srv : server#[:] logdir : byte[:] self : chan# focus : std.size term : termdraw.term# user : byte[:] nick : byte[:] /*should probably be per-server, but.. eh. */ onconn : byte[:][:] /* input editing */ off : std.size cmd : char[:] yank : char[:] chandirty : bool cmddirty : bool ;; type server = struct id : std.size fd : std.fd user : byte[:] nick : byte[:] ds : byte[:] buf : byte[512] nbuf : std.size chan : chan#[:] focus : std.size death : std.time ping : std.time ;; type chan = struct log : std.fd hist : (std.time, hist)[:] histoff : std.size /* scrolling */ name : byte[:] topic : byte[:] users : byte[:][:] stale : bool flagged : bool gutter : int scroll : int ;; type hist = union `Msg (byte[:], byte[:]) `Act (byte[:], byte[:]) `Join byte[:] `Part byte[:] `Status byte[:] ;; ;;