package grace

  1. Overview
  2. Docs
A fancy diagnostics library that allows your compilers to exit with grace

Install

dune-project
 Dependency

Authors

Maintainers

Sources

grace-0.4.0.tbz
sha256=388149857c0fbaf2489b1e396af25aadd6185998847b75570f9198a077ad1ace
sha512=9ffa701f7729f90976594c4ec77b968f15450d8d7a1f0c65fe60d092c136b18f1c8bbd5f5772a651c925dabcdc82ac7023c30a4caa1b94e3e158ef2efa34b85e

doc/src/grace.std/utf8.ml.html

Source file utf8.ml

1
2
3
4
5
6
7
8
9
10
11
let length s =
  let decoder = Uutf.decoder ~encoding:`UTF_8 (`String s) in
  let rec loop acc =
    match Uutf.decode decoder with
    | `Uchar _ -> loop (acc + 1)
    | `End -> acc
    | `Malformed _ -> raise (Invalid_argument "invalid UTF-8")
    | `Await -> assert false
  in
  loop 0
;;