clj-commons / byte-streams

A Rosetta stone for JVM byte representations
417 stars 33 forks source link

(bs/to-byte-array []) fails #19

Open martinraison opened 9 years ago

martinraison commented 9 years ago

Is this by design? I would expect to get an empty byte array instead.

=> (bs/to-byte-array [])
IllegalArgumentException Don't know how to convert class clojure.lang.PersistentVector into class [B byte-streams/convert (byte_streams.clj:187)

Since (bs/to-byte-array [(byte-array [2 3 4]) (byte-array [5 6])]) works, the behavior seems surprising to me. It requires checking that the array is not empty before calling to-byte-array.

ztellman commented 9 years ago

Currently byte-streams doesn't handle nil or empty sequences, mostly because I haven't thought through all the implications of (for instance) implicitly transforming nil into an empty byte-array. I agree, though, that it puts an unfortunate burden on you. Leaving this issue open until I have a better answer.

martinraison commented 9 years ago

:+1: