package topology

  1. Overview
  2. Docs
type t
type vertex
type edge
type port = int32
module Vertex : sig ... end
module Edge : sig ... end
module EdgeSet : sig ... end
module VertexSet : sig ... end
module PortSet : sig ... end
val copy : t -> t
val empty : unit -> t
val add_vertex : t -> Vertex.t -> t * vertex
val add_edge : t -> vertex -> port -> Edge.t -> vertex -> port -> t * edge
val num_vertexes : t -> int
val num_edges : t -> int
val vertexes : t -> VertexSet.t
val edges : t -> EdgeSet.t
val neighbors : t -> vertex -> VertexSet.t
val vertex_to_ports : t -> vertex -> PortSet.t
val next_hop : t -> vertex -> port -> edge option
val edge_src : edge -> vertex * port
val edge_dst : edge -> vertex * port
val vertex_to_label : t -> vertex -> Vertex.t
val vertex_of_label : t -> Vertex.t -> vertex
val edge_to_label : t -> edge -> Edge.t
val iter_succ : (edge -> unit) -> t -> vertex -> unit
val iter_vertexes : (vertex -> unit) -> t -> unit
val iter_edges : (edge -> unit) -> t -> unit
val fold_vertexes : (vertex -> 'a -> 'a) -> t -> 'a -> 'a
val fold_edges : (edge -> 'a -> 'a) -> t -> 'a -> 'a
val remove_vertex : t -> vertex -> t
val remove_edge : t -> edge -> t
val remove_endpoint : t -> (vertex * port) -> t
OCaml

Innovation. Community. Security.