package irmin
Irmin, a distributed database that follows the same design principles as Git
Install
Dune Dependency
Authors
Maintainers
Sources
irmin-3.3.0.tbz
sha256=38f90d1dcada0a691e45ac9f26e1e0ea3e6967e9660c7b694fdd2423fbc92ea8
sha512=aac01211fb70c10727bdd8457f403f784d63f3be4d7b513577694448088006b6f39063d07a212f5b6f56639d0937231bef47c53cb56801460d6177824f6cbb81
doc/irmin/Irmin/Perms/index.html
Module Irmin.Perms
Source
Types representing permissions 'perms
for performing operations on a certain type 'perms t
.
They are intended to be used as phantom parameters of the types that they control access to. As an example, consider the following type of references with permissions:
module Ref : sig
type (+'a, -'perms) t
val create : 'a -> ('a, read_write) t
val get : ('a, [> read ]) t -> 'a
val set : ('a, [> write ]) t -> 'a -> unit
end
This type allows references to be created with arbitrary read-write access. One can then create weaker views onto the reference – with access to fewer operations – by upcasting:
let read_only t = (t :> (_, read) Ref.t)
let write_only t = (t :> (_, write) Ref.t)
Note that the 'perms
phantom type parameter should be contravariant: it's safe to discard permissions, but not to gain new ones.
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>