bytebuf.clj
Branches > refactor/use-spec-1 > 2817adb > files / src / dev / grahp / bytebuf.clj
(ns dev.grahp.bytebuf
(:import
[io.netty.buffer ByteBuf]
[java.io Writer]))
(defn byte-buf-bytes [buf]
(let [arr (byte-array (ByteBuf/.readableBytes buf))]
(ByteBuf/.getBytes buf (ByteBuf/.readerIndex buf) arr)
(vec arr)))
(defn print-bb [buf]
(into []
(comp
(map #(bit-and % 0xFF))
(interpose ", "))
(byte-buf-bytes buf)))
(defmethod print-method ByteBuf [bb w]
(Writer/.write w (str "#" (Class/.getSimpleName (type bb)) " "))
(Writer/.write w "[")
(Writer/.write w (apply str (print-bb bb)))
(Writer/.write w "]"))