Back
UnblockingBuffer (clj)
(source)protocol
Examples
typedclojure/typedclojure
End users should use typed.lib.clojure.core.async, which all types here
are qualified under."}
typed.ann.clojure.core.async
(:require [typed.clojure :refer [ann ann-datatype defalias ann-protocol] :as t]
[typed.lib.clojure.core.async :as-alias ta]
[clojure.core.async.impl.protocols :as-alias impl])
(:import (java.util.concurrent.locks Lock)))
(ann-protocol clojure.core.async.impl.protocols/UnblockingBuffer)
(defalias
^{:forms '[(UnblockingBuffer2 t t)]}
ta/UnblockingBuffer2
"An unblocking buffer that can write type w and read type t."
(t/TFn [[w :variance :contravariant]
[r :variance :covariant]]
(t/I (ta/Buffer2 w r)
impl/UnblockingBuffer)))
(defalias
^{:forms '[(UnblockingBuffer t)]}
ta/UnblockingBuffer
"An unblocking buffer of type x."
(t/TFn [[x :variance :invariant]]
(ta/UnblockingBuffer2 x x)))