bufio
Generic buffered I/O for Carp. Wraps any stream
implementing stream-read and stream-write with buffered line-oriented and
size-delimited reading, and buffered writing.
Interfaces
Implement these for your stream type:
(definterface stream-read (Fn [&a &(Array Byte) Int] Int))
(definterface stream-write (Fn [&a &(Array Byte)] Int))
(definterface stream-close (Fn [a] ()))
Usage (with TCP sockets)
(let [br (TcpStream.buffered stream)]
(do
(BufReader.write &br "GET / HTTP/1.0\r\n\r\n")
(ignore (BufReader.flush &br))
(match (BufReader.read-line &br)
(Result.Success line) (println* &line)
_ ())
(BufReader.delete br)))