光泽 - 根据更多字段输入

时间:2015-05-30 15:24:28

标签: clojure protocols

我在gloss中实现了网络协议,它有一种类型的多字节代码。例如,数字消息的代码范围为0x90 - 0x9F。用于生成该类型的朴素函数可以如下所示:

(defn digital-message
  [port]
  (bit-or 0x90 port))

我想创建看起来像这样的编码器和解码器:

解码器:

(decode-all decoder (to-byte-buffer [0x91 0x05 0x98 0x06])) ; [{:type :digital-message :port 1 :some-data 5}
                                                            ;  {:type :digital-message :port 8 :some-data 6}]

编码器:

(encode encoder {:type :digital-message :port 2 :some-data 5}) ; [0x92 0x05]

不幸的是,我不知道如何实现它并与gloss/header结合使用。

感谢您的回复。

0 个答案:

没有答案