;   Copyright (c) Rich Hickey. All rights reserved.
;   The use and distribution terms for this software are covered by the
;   Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)
;   which can be found in the file epl-v10.html at the root of this distribution.
;   By using this software in any fashion, you are agreeing to be bound by
;   the terms of this license.
;   You must not remove this notice, or any other, from this software.

(ns clojure.uuid)

(defn- default-uuid-reader [form]
  {:pre [(string? form)]}
  (new erlang.util.UUID form))

;; We need to have these method implementations in clojure.core so they
;; can be loaded when clojure.core is loaded

(in-ns 'clojure.core)

(clojerl/unstick)

(defmethod print-method erlang.util.UUID [uuid ^erlang.io.IWriter w]
  (.write w (str "#uuid \"" (str uuid) "\"")))

(defmethod print-dup erlang.util.UUID [o w]
  (print-method o w))
