Module Iobuf.Blit

Blit copies between iobufs and advances neither src nor dst.

Blit.S1_permissions defines the type parameters in reverse order!

include Core_kernel.Blit.S1_permissions with type ('seek, 'rw) t := ('rw'seek) t
type ('a, -'perms) t
val blit : (('a[> Core_kernel.Perms.Export.read ]) t('a[> Core_kernel.Perms.Export.write ]) t) Base.Blit.blit
val blito : (('a[> Core_kernel.Perms.Export.read ]) t('a[> Core_kernel.Perms.Export.write ]) t) Base.Blit.blito
val unsafe_blit : (('a[> Core_kernel.Perms.Export.read ]) t('a[> Core_kernel.Perms.Export.write ]) t) Base.Blit.blit
val sub : (('a[> Core_kernel.Perms.Export.read ]) t('a[< _ Core_kernel.Perms.Export.perms ]) t) Base.Blit.sub
val subo : (('a[> Core_kernel.Perms.Export.read ]) t('a[< _ Core_kernel.Perms.Export.perms ]) t) Base.Blit.subo
val sub : ([> Core_kernel.read ]_) t -> pos:int -> len:int -> (__) t

Override types of sub and subo to allow return type to have seek/no_seek as needed.

val subo : ?⁠pos:int -> ?⁠len:int -> ([> Core_kernel.read ]_) t -> (__) t
val blit_maximal : src:([> Core_kernel.read ]_) t -> ?⁠src_pos:int -> dst:([> Core_kernel.write ]_) t -> ?⁠dst_pos:int -> unit -> int

Copies as much as possible (returning the number of bytes copied) without running out of either buffer's window.