On Tue, Jan 21, 2014 at 05:18:27PM +0100, Pino Toscano wrote:
let entries =
List.map (
fun (n, fields) ->
+ let find_elem key subkey fields =
+ match List.filter (
+ fun (iterkey, itersubkey, itervalue) ->
+ iterkey = key && itersubkey = subkey
+ ) fields with
+ | [] -> raise Not_found
+ | (_, _, value) :: _ -> value in
let printable_name =
- try Some (List.assoc "name" fields) with Not_found -> None in
+ try Some (find_elem "name" "" fields) with Not_found
-> None in
What you could do here, which is a bit nicer, is (earlier on):
let fields = List.map (fun (k,sk,v) -> (k,sk),v) fields in
Delete the find_elem function and use instead:
- try Some (List.assoc "name" fields) with Not_found -> None in
+ try Some (List.assoc ("name",None) fields) with Not_found -> None
in
etc. since List.assoc works for any key type, not just strings.
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
virt-top is 'top' for virtual machines. Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://people.redhat.com/~rjones/virt-top