package toffee

  1. Overview
  2. Docs
CSS layout engine for OCaml (Flexbox, Grid, Block)

Install

dune-project
 Dependency

Authors

Maintainers

Sources

mosaic-0.1.0.tbz
sha256=9e4e90d17f9b2af1b07071fe425bc2c519c849c4f1d1ab73cde512be2d874849
sha512=06e9c4a741590942e81a27738d0b5c0413fafec8cf3b7dae047ad69f155e7b718aa4223818dc161b7d028efffcfd3365905e264d6fd31d453910ddfa91dcf9b9

doc/src/toffee.geometry/line.ml.html

Source file line.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
type 'a t = { start : 'a; end_ : 'a }

(* Constants *)

let both_true = { start = true; end_ = true }
let both_false = { start = false; end_ = false }

(* Creation *)

let make start end_ = { start; end_ }

(* Mapping *)

let map f line = { start = f line.start; end_ = f line.end_ }

(* Arithmetic for numeric lines *)

let sum line = line.start +. line.end_

(* Mapping for two-argument functions *)

let map2 f line1 line2 =
  { start = f line1.start line2.start; end_ = f line1.end_ line2.end_ }

(* Comparison and string functions *)

let compare cmp a b =
  let cmp_start = cmp a.start b.start in
  if cmp_start <> 0 then cmp_start else cmp a.end_ b.end_

let equal eq a b = eq a.start b.start && eq a.end_ b.end_

let to_string f line =
  Printf.sprintf "{ start: %s; end: %s }" (f line.start) (f line.end_)

let pp f fmt line =
  Format.fprintf fmt "{ start: %a; end: %a }" f line.start f line.end_