X-Git-Url: http://git.nguyen.vg/gitweb/?p=tatoo.git;a=blobdiff_plain;f=src%2Futils%2Fuid.ml;fp=src%2Futils%2Fuid.ml;h=0cb9688b419ae2d3a33b797ee33855d90c8e9438;hp=0000000000000000000000000000000000000000;hb=30bc0bb1291426e5e26eb2dee1ffc41e4c246349;hpb=d9c0e4863807eaf472e875a4bad35cfefe985c95 diff --git a/src/utils/uid.ml b/src/utils/uid.ml new file mode 100644 index 0000000..0cb9688 --- /dev/null +++ b/src/utils/uid.ml @@ -0,0 +1,33 @@ +(***********************************************************************) +(* *) +(* TAToo *) +(* *) +(* Kim Nguyen, LRI UMR8623 *) +(* Université Paris-Sud & CNRS *) +(* *) +(* Copyright 2010-2012 Université Paris-Sud and Centre National de la *) +(* Recherche Scientifique. All rights reserved. This file is *) +(* distributed under the terms of the GNU Lesser General Public *) +(* License, with the special exception on linking described in file *) +(* ../LICENSE. *) +(* *) +(***********************************************************************) + +(* + Time-stamp: +*) + +type t = int + +exception Overflow +let make_maker () = + let _id = ref ~-1 in + fun () -> + incr _id; + let i = !_id in + if i < 0 then raise Overflow else i + +let dummy = -1 + +external to_int : t -> int = "%identity" +external of_int : int -> t= "%identity"