(deftype DoubleType []
  BuffyType
  (size [_] 4)
  (write [bt buffer idx value]
    (.setDouble buffer idx value))
  (read [by buffer idx]
    (.getDouble buffer idx))

  (rewind-write [bt buffer value]
    (.writeDouble buffer value))
  (rewind-read [by buffer]
    (.readDouble buffer))

  Object
  (toString [_]

(deftest double-field-write-test
  (let [s (spec :first-field (double-type)
                :second-field (string-type 10))
        b (compose-buffer s)]
    (set-field b :first-field (double 5.34))
    (is (= (double 5.34) (get-field b :first-field)))))    "DoubleType"))
