Module Pf_qubes.Parse_qubes
type action = | Accept| Drop
val pp_action : Stdlib.Format.formatter -> action -> unittype family = | Inet| Inet6
val is_whitespace : char -> boolval a_whitespace_unit : unit Angstrom.tval a_whitespace : unit Angstrom.tval a_ign_whitespace : unit Angstrom.tval some : 'a Angstrom.t -> 'a option Angstrom.tval a_number : int Angstrom.tval a_number_range : int -> int -> int Angstrom.tval a_mask_bits : af:family -> int Angstrom.tval a_cidr : Ipaddr.Prefix.t Angstrom.tval q_action : action Angstrom.tval a_dst4 : (family * Ipaddr.V4.Prefix.t) Angstrom.tval a_dst6 : (family * Ipaddr.V6.Prefix.t) Angstrom.tval a_proto : [> `icmp | `tcp | `udp ] Angstrom.tval a_specialtarget : [> `dns ] Angstrom.ttype range = | Range_inclusive of int * int
val pp_range : Stdlib.Format.formatter -> range -> unitval a_dstports : range option Angstrom.tval a_icmptype : int Angstrom.tval a_dpi : string Angstrom.ttype proto = [ | `udp| `tcp| `icmp
]val pp_proto : Stdlib.Format.formatter -> [< `icmp | `tcp | `udp ] -> unittype dst = [ | `any| `hosts of Ipaddr.Prefix.t| `dnsname of [ `host ] Domain_name.t
]type rule = {action : action;proto : proto option;specialtarget : [ `dns ] option;dst : dst;dstports : range option;icmp_type : int option;number : int;
}val pp_specialtarget : Stdlib.Format.formatter -> 'a -> unitval pp_dst :
Stdlib.Format.formatter ->
[< `any | `dnsname of 'a Domain_name.t | `hosts of Ipaddr.Prefix.t ] ->
unitval pp_rule : Stdlib.Format.formatter -> rule -> unitval a_raw_dnsname : dst Angstrom.tval a_qubes_v4 : number:int -> rule Angstrom.tval parse_qubes : number:int -> string -> (rule, string) Stdlib.result