mirror of
https://github.com/taoensso/telemere.git
synced 2026-01-02 15:48:25 +00:00
[new] Add Signal printing methods
This commit is contained in:
parent
50378146c0
commit
2989649679
2 changed files with 28 additions and 2 deletions
|
|
@ -197,7 +197,23 @@
|
|||
location ns line column file,
|
||||
sample-rate, kind id level, ctx parent,
|
||||
data msg_ error run-form run-val,
|
||||
end-instant run-nsecs extra-kvs])
|
||||
end-instant run-nsecs extra-kvs]
|
||||
|
||||
Object (toString [sig] (str "#" `Signal (into {} sig))))
|
||||
|
||||
(do (enc/def-print-impl [sig Signal] (str "#" `Signal (pr-str (into {} sig)))))
|
||||
#?(:clj (enc/def-print-dup [sig Signal] (str "#" `Signal (pr-str (into {} sig))))) ; NB intentionally verbose, to support extra keys
|
||||
|
||||
(comment
|
||||
(def s1 (with-signal (signal! {:level :info, :my-k1 :my-v1})))
|
||||
(read-string (str (assoc s1 :my-k2 :my-v2)))
|
||||
(read-string (pr-str (assoc s1 :my-k2 :my-v2)))
|
||||
(read-string (binding [*print-dup* true] (pr-str (assoc s1 :my-k2 :my-v2))))
|
||||
|
||||
(defrecord MyRec [x])
|
||||
(read-string ; Non-verbose will fail on any extra keys
|
||||
(binding [*print-dup* true, *verbose-defrecords* false]
|
||||
(pr-str (assoc (MyRec. :x) :y :y)))))
|
||||
|
||||
(deftype #_defrecord WrappedSignal
|
||||
;; Internal type to implement `sigs/IFilterableSignal`,
|
||||
|
|
|
|||
|
|
@ -215,7 +215,17 @@
|
|||
(is (= rv2 3)) (is (nil? sv2))
|
||||
(is (= rv3 4)) (is (sm? sv3 {:m1 5 :m2 6}))
|
||||
(is (= rv4 true)) (is (= sv4 "signal-value"))
|
||||
(is (= @c 7) "3x run + 4x middleware")]))])
|
||||
(is (= @c 7) "3x run + 4x middleware")]))
|
||||
|
||||
#?(:clj
|
||||
(testing "Printing"
|
||||
(let [sv1 (tel/with-signal (tel/signal! {:level :info, :run (+ 1 2), :my-k1 :my-v1}))
|
||||
sv1 ; Ensure instants are printable
|
||||
(-> sv1
|
||||
(update :instant enc/inst->udt)
|
||||
(update :end-instant enc/inst->udt))]
|
||||
|
||||
[(is (= sv1 (read-string (pr-str sv1))))])))])
|
||||
|
||||
(deftest _handlers
|
||||
;; Basic handler tests are in Encore
|
||||
|
|
|
|||
Loading…
Reference in a new issue