4b38d4e

Branches > namespace-reorganization > 4b38d4e > files / resources / favicon.txt

Add bit-mask type

Grahp, 2026-03-08

Commit: 4b38d4e7245e454f051cdf8b481c11f23aa26b61
Parent: 8605065

1 changed file:

src/net/bowmap/packet/read.clj modified (view file)

@@ -55,6 +55,20 @@               acc))           {} codec-fields)) +(defn- mapize-vector-or-something [x]+  {:pre [(or (map? x) (vector? x))]}+  (if (vector? x)+    (zipmap (range) x)+    x))++(defn read-bit-mask! [buf codec mask]+  (let [n (codec buf)]+    (reduce-kv (fn [acc bit x]+                 (if (bit-test n bit)+                   (conj acc x)+                   acc))+               #{} mask)))+ (declare readers)  (defn reader@@ -78,6 +92,9 @@    :string read-string!    :uuid   read-uuid!    :identifer read-string!+   :bit-mask (fn [t mask]+               (let [mask (mapize-vector-or-something mask)]+                 (fn [buf] (read-bit-mask! buf (reader t) mask))))    :table (fn [table]             (let [table (->> (s/conform ::t/table table)                              (mapv #(assoc % :codec (reader (:type %)))))]