mirror of
https://github.com/taoensso/telemere.git
synced 2025-12-18 18:11:12 +00:00
[nop] Use pr-edn* for Signal strings
This commit is contained in:
parent
254cd6471b
commit
e8f02ac13e
2 changed files with 19 additions and 23 deletions
|
|
@ -253,28 +253,19 @@
|
||||||
sample, kind id level, ctx parent root, data kvs msg_,
|
sample, kind id level, ctx parent root, data kvs msg_,
|
||||||
error run-form run-val end-inst run-nsecs]
|
error run-form run-val end-inst run-nsecs]
|
||||||
|
|
||||||
Object (toString [sig] (str "taoensso.telemere.Signal" (into {} sig))))
|
Object (toString [sig] (str "taoensso.telemere.Signal" (enc/pr-edn* (into {} sig)))))
|
||||||
|
|
||||||
;; NB intentionally verbose constructors for readability, to support extra keys
|
;; Verbose constructors for readability + to support extra keys
|
||||||
(do (enc/def-print-impl [sig Signal] (str "#taoensso.telemere.Signal" (pr-str (into {} sig)))))
|
(do (enc/def-print-impl [sig Signal] (str "#taoensso.telemere.Signal" (enc/pr-edn* (into {} sig)))))
|
||||||
#?(:clj (enc/def-print-dup [sig Signal] (str "#taoensso.telemere.impl.Signal" (pr-str (into {} sig)))))
|
#?(:clj (enc/def-print-dup [sig Signal] (str "#taoensso.telemere.impl.Signal" (enc/pr-edn* (into {} sig)))))
|
||||||
|
|
||||||
|
(defn signal? #?(:cljs {:tag 'boolean}) [x] (instance? Signal x))
|
||||||
|
|
||||||
(def impl-signal-keys #{:_otel-context})
|
(def impl-signal-keys #{:_otel-context})
|
||||||
(def standard-signal-keys
|
(def standard-signal-keys
|
||||||
(set/difference (set (keys (map->Signal {:schema 0})))
|
(set/difference (set (keys (map->Signal {:schema 0})))
|
||||||
impl-signal-keys))
|
impl-signal-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
|
(deftype #_defrecord WrappedSignal
|
||||||
[kind ns id level signal-value_]
|
[kind ns id level signal-value_]
|
||||||
sigs/ISignalHandling
|
sigs/ISignalHandling
|
||||||
|
|
|
||||||
|
|
@ -281,15 +281,20 @@
|
||||||
(with-sig (sig! {:level :info, :xfn+ #(assoc % :bar true)})))]
|
(with-sig (sig! {:level :info, :xfn+ #(assoc % :bar true)})))]
|
||||||
(is (sm? sv {:foo true, :bar true})))])])
|
(is (sm? sv {:foo true, :bar true})))])])
|
||||||
|
|
||||||
#?(:clj
|
|
||||||
(testing "Printing"
|
(testing "Printing"
|
||||||
|
[#?(:clj (is (impl/signal? (read-string (binding [*print-dup* true] (pr-str (impl/map->Signal {})))))))
|
||||||
|
#?(:clj (is (impl/signal? (read-string (binding [*print-dup* true] (pr-str (assoc (impl/map->Signal {}) :k :v)))))))
|
||||||
|
(is (enc/str-starts-with? (binding [*print-dup* true] (str (assoc (impl/map->Signal {}) :k :v))) "taoensso.telemere.Signal{"))
|
||||||
|
(is (enc/str-starts-with? (pr-str (assoc (impl/map->Signal {}) :k :v)) "#taoensso.telemere.Signal{"))
|
||||||
|
(is (enc/str-starts-with? (str (assoc (impl/map->Signal {}) :k :v)) "taoensso.telemere.Signal{"))
|
||||||
|
|
||||||
|
#?(:clj
|
||||||
(let [sv1 (dissoc (with-sig (sig! {:level :info, :run (+ 1 2), :my-k1 :my-v1})) :_otel-context)
|
(let [sv1 (dissoc (with-sig (sig! {:level :info, :run (+ 1 2), :my-k1 :my-v1})) :_otel-context)
|
||||||
sv1 ; Ensure instants are printable
|
sv1 ; Ensure instants are printable
|
||||||
(-> sv1
|
(-> sv1
|
||||||
(update-in [:inst] enc/inst->udt)
|
(update-in [:inst] enc/inst->udt)
|
||||||
(update-in [:end-inst] enc/inst->udt))]
|
(update-in [:end-inst] enc/inst->udt))]
|
||||||
|
(is (= sv1 (read-string (pr-str sv1))) "Equality holds")))])])
|
||||||
[(is (= sv1 (read-string (pr-str sv1))))])))])
|
|
||||||
|
|
||||||
(deftest _handlers
|
(deftest _handlers
|
||||||
;; Basic handler tests are in Encore
|
;; Basic handler tests are in Encore
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue