package records

All checked builds pass
  1. Overview
  2. Docs
Dynamic records

Install

dune-project
 Dependency

Authors

Maintainers

Sources

1.0.0.tar.gz
md5=868f4724df008cc9f8302492446201ac
sha512=b8da2f37effab90c904dfa64b37d7537ee16bf88572e2dc81a67b4c5303a550cc78d2231ce690b42353771d9b6ff261b2019e5a6ed3da8949ab05fcf076bb904

Description

This library enables you to define and manipulate dynamic records in OCaml.

Tags

org:cryptosense

Added to opam-repository:

README

Dynamic records

Build Status

This library enables you to define and manipulate dynamic records in OCaml.

Example

Let us define a "point" record with three integer fields: x, y and z.

First, declare a new record layout.

module Point = (val Record.Safe.declare "point")

Second, define the fields. They have the type (int, Point.s) field (Point.s is a phantom type that guarantees type safety).

let x = Point.field "x" Record.Type.int
let y = Point.field "y" Record.Type.int
let z = Point.field "z" Record.Type.int

Third, "seal" this record structure. This prevents it from being further modified. Structures must be sealed before they can be used.

let () = Point.seal ()

At this point, you have a working record structure. The next step is to create actual records. They have the type Point.s Record.t and are created using Point.make. Initially their fields have no value.

let _ =
  let p = Point.make () in
  Record.set p x 3;
  Record.set p y 4;
  Record.set p z 5;
  Record.format Format.std_formatter p

The last line outputs:

{"x":3,"y":4,"z":5}

Licensing

This library is available under the 2-clause BSD license. See COPYING for more information.

Dependencies (3)

  1. yojson >= "1.6.0"
  2. ocaml >= "4.08.0"
  3. dune >= "2.0"

Dev Dependencies (1)

  1. ounit with-test & >= "2.0.0"

Optional Dependencies

None

Used by

None

Conflicts

None

Build status

Results of building records with each compiler on check.ci.ocaml.org, run of against opam-repository 8a77e58. All results for this package.

Each result links to its build log. To keep crawlers from overloading the site, build logs require a GitHub sign-in (see ocurrent/opam-health-check). On your first log, GitHub asks you to “Authorize opam-health-check”, the OCurrent app that runs these checks; it sees only your public profile, not your repositories. The sign-in lasts 30 days.

Version OCaml 4.11 OCaml 4.14 OCaml 5.2 OCaml 5.4 OCaml 5.5
1.0.0 (this version) good good good good good
  • good Package successfully built
  • partial One of the dependencies failed to build
  • bad Package failed to build
  • n/a Package is not available in this environment
  • internal Internal failure