PRopeChunk protocol extensions for the built-in chunk backends used by the rope kernel.
The rope kernel operates on opaque 'chunks' whose concrete type varies by rope variant:
Rope — APersistentVector chunks (arbitrary Clojure values) StringRope — java.lang.String chunks (UTF-16 code units) ByteRope — byte[] chunks (raw bytes, unsigned 0–255 semantics)
Each backend here provides the 13 primitive operations the kernel needs (length, slice, merge, nth, append, last, butlast, update, of, reduce-init, append-sb, splice, splice-split). The rope kernel dispatches through the PRopeChunk protocol so that rope-concat/split/splice/etc. are written once and work for every backend.
PRopeChunk is strictly an internal dispatch table — nothing outside the
kernel should depend on these methods directly. User-facing interop with
Clojure built-in collections lives in ordered-collections.types.interop.
PRopeChunk protocol extensions for the built-in chunk backends used by the rope kernel. The rope kernel operates on opaque 'chunks' whose concrete type varies by rope variant: Rope — APersistentVector chunks (arbitrary Clojure values) StringRope — java.lang.String chunks (UTF-16 code units) ByteRope — byte[] chunks (raw bytes, unsigned 0–255 semantics) Each backend here provides the 13 primitive operations the kernel needs (length, slice, merge, nth, append, last, butlast, update, of, reduce-init, append-sb, splice, splice-split). The rope kernel dispatches through the PRopeChunk protocol so that rope-concat/split/splice/etc. are written once and work for every backend. PRopeChunk is strictly an internal dispatch table — nothing outside the kernel should depend on these methods directly. User-facing interop with Clojure built-in collections lives in `ordered-collections.types.interop`.
No vars found in this namespace.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |