///|
pub(all) struct VertexSeparatorResult {
sepsize : Int
part : FixedArray[Int]
}
///|
pub fn compute_vertex_separator(
graph : CsrGraph,
options? : Options,
) -> VertexSeparatorResult raise MetisError {
graph.validate()
let options = option_or_default(options)
let sepsize = Ref(0)
let part = FixedArray::make(graph.nvtxs, 0)
let status = metis_compute_vertex_separator_ffi(
graph.nvtxs,
graph.xadj,
graph.adjncy,
int_array_or_empty(graph.vwgt),
options.raw(),
sepsize,
part,
)
raise_status(status)
{ sepsize: sepsize.val, part }
}