package refl
PPX deriver for reflection
Install
Dune Dependency
Authors
Maintainers
Sources
v0.4.0.tar.gz
sha512=c158970749c1b7bacb8af1f88f0304d8d6cb0f532d3f876734489c3c4220d00f4d5aac6066e6d385ee70e1810ec65ffd47f0197bd5a6080f4d688cb3a386dc0a
doc/src/ppx_refl/indexer.ml.html
Source file indexer.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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
module Make (T : Map.OrderedType) = struct module Map = Map.Make (T) type t = { count : int; map : int Map.t; } let of_fresh count = { count; map = Map.empty } let empty = of_fresh 0 let count indexer = indexer.count let to_map indexer = indexer.map let fresh indexer = let index = indexer.count in index, { indexer with count = succ indexer.count } let force_add item indexer = let index, indexer = fresh indexer in index, { indexer with map = Map.add item index indexer.map } let mem item indexer = Map.mem item indexer.map let find item indexer = Map.find item indexer.map let find_opt item indexer = Map.find_opt item indexer.map let add item indexer = try find item indexer, indexer with Not_found -> force_add item indexer let of_list list = List.fold_left begin fun indexer x -> snd begin match x with | None -> fresh indexer | Some x -> force_add x indexer end end empty list let union indexer indexer' = { count = indexer.count + indexer'.count; map = Map.map (fun index -> index + indexer.count) indexer'.map |> Map.union (fun _ _ _ -> invalid_arg "Indexer.union") indexer.map } end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>