# HG changeset patch # User Thomas Gazagnaire # Date 1262958466 0 # Node ID 45bd84d8701763d0e13863113cf6c3e9f2135063 # Parent 8e5e1af38c22077f98510231918d83ff5c715e05 [rpc-light] Add some basic RPC int functions. This patch adds rpc_of_{int,int32,int64} and {int,int32,int64}_of_rpc Signed-off-by: Thomas Gazagnaire diff -r 8e5e1af38c22 -r 45bd84d87017 rpc-light/rpc.ml --- a/rpc-light/rpc.ml Fri Jan 08 13:47:46 2010 +0000 +++ b/rpc-light/rpc.ml Fri Jan 08 13:47:46 2010 +0000 @@ -42,14 +42,30 @@ let rpc_of_t x = x let rpc_of_int64 i = Int i +let rpc_of_int32 i = Int (Int64.of_int32 i) +let rpc_of_int i = Int (Int64.of_int i) let rpc_of_bool b = Bool b let rpc_of_float f = Float f let rpc_of_string s = String s let t_of_rpc x = x -let int64_of_rpc = function Int i -> i | _ -> failwith "int64_of_rpc" +let int64_of_rpc = function + | Int i -> i + | String s -> Int64.of_string s + | _ -> failwith "int64_of_rpc" +let int32_of_rpc = function + | Int i -> Int64.to_int32 i + | String s -> Int32.of_string s + | _ -> failwith "int32_of_rpc" +let int_of_rpc = function + | Int i -> Int64.to_int i + | String s -> int_of_string s + | _ -> failwith "int_of_rpc" let bool_of_rpc = function Bool b -> b | _ -> failwith "bool_of_rpc" -let float_of_rpc = function Float f -> f | _ -> failwith "float_of_rpc" +let float_of_rpc = function + | Float f -> f + | String s -> float_of_string s + | _ -> failwith "float_of_rpc" let string_of_rpc = function String s -> s | _ -> failwith "string_of_rpc" type callback = string list -> t -> unit diff -r 8e5e1af38c22 -r 45bd84d87017 rpc-light/rpc.mli --- a/rpc-light/rpc.mli Fri Jan 08 13:47:46 2010 +0000 +++ b/rpc-light/rpc.mli Fri Jan 08 13:47:46 2010 +0000 @@ -29,6 +29,12 @@ val int64_of_rpc : t -> int64 val rpc_of_int64 : int64 -> t + +val int32_of_rpc : t -> int32 +val rpc_of_int32 : int32 -> t + +val int_of_rpc : t -> int +val rpc_of_int : int -> t val bool_of_rpc : t -> bool val rpc_of_bool : bool -> t