pub struct Ops {
pub name: Option<String>,
pub name_was_lossy: bool,
pub start_line: usize,
pub end_line: usize,
pub kind: SpaceKind,
pub spaces: Vec<Ops>,
pub operands: Vec<String>,
pub operators: Vec<String>,
}Expand description
All operands and operators of a space.
Fields§
§name: Option<String>The name of a function space.
For the top-level (file-level) Ops the value is whatever
Source::name the caller supplied to the crate::Ast::ops
seam — Some or None.
For nested spaces, None means an error occurred in parsing the
name of the function space from the AST.
name_was_lossy: booltrue when Ops::name was produced by lossy conversion (the
original path contained non-UTF-8 bytes and was rendered using
U+FFFD replacement characters). The explicit-name
crate::Ast::ops seam never sets it, since a caller-supplied
String name is UTF-8 by construction, so it is always false
in current code paths. Retained as a wire field for forward
compatibility; skipped from JSON output when false so existing
schemas keep their shape.
start_line: usizeThe first line of a function space.
end_line: usizeThe last line of a function space.
kind: SpaceKindThe space kind.
spaces: Vec<Ops>All subspaces contained in a function space.
operands: Vec<String>The distinct operands of a space — the deduplicated Halstead
operand vocabulary (n2), one entry per unique operand, not every
occurrence. Backed by the keys of a HashMap, so entries are
unique and returned in arbitrary order.
operators: Vec<String>The distinct operators of a space — the deduplicated Halstead
operator vocabulary (n1), one entry per unique operator, not
every occurrence. Backed by the keys of a HashMap, so entries
are unique and returned in arbitrary order.