pub struct GraphHeader {
pub version: u32,
pub node_count: usize,
pub edge_count: usize,
pub string_count: usize,
pub file_count: usize,
pub timestamp: u64,
pub config_provenance: Option<ConfigProvenance>,
pub plugin_versions: HashMap<String, String>,
pub fact_epoch: u64,
}Expand description
Header for persisted graph files.
The header provides metadata about the graph for validation and efficient loading.
Fields§
§version: u32Format version (for compatibility checking)
node_count: usizeNumber of nodes in the graph
edge_count: usizeNumber of edges in the graph
string_count: usizeNumber of interned strings
file_count: usizeNumber of registered files
timestamp: u64Timestamp when graph was saved (unix epoch seconds)
config_provenance: Option<ConfigProvenance>Configuration provenance - records which config was used to build this graph.
plugin_versions: HashMap<String, String>Plugin versions used to build this graph (plugin_id → version).
Tracks which language plugin versions were active during indexing. Used to detect stale indexes when plugin versions change.
fact_epoch: u64Monotonic fact-layer epoch stamped at save time (Phase 1+).
Strictly increases across successive saves of the same snapshot file,
including across process restarts: the writer reads the existing
header (if any) before stamping and computes
max(prev_epoch + 1, SystemTime::now().as_secs()).
Defaulted to 0 for V7 snapshots and for GraphHeader::new /
with_provenance constructors. The epoch is stamped by the Phase 1
V8 writer (P1U06); this unit only introduces the field and accessors.
Format: plain u64, serde-default 0 so postcard deserialization of
older headers that did not carry the field continues to succeed.
Implementations§
Source§impl GraphHeader
impl GraphHeader
Sourcepub fn new(
node_count: usize,
edge_count: usize,
string_count: usize,
file_count: usize,
) -> Self
pub fn new( node_count: usize, edge_count: usize, string_count: usize, file_count: usize, ) -> Self
Creates a new graph header with the given counts.
Sourcepub fn with_provenance(
node_count: usize,
edge_count: usize,
string_count: usize,
file_count: usize,
provenance: ConfigProvenance,
) -> Self
pub fn with_provenance( node_count: usize, edge_count: usize, string_count: usize, file_count: usize, provenance: ConfigProvenance, ) -> Self
Creates a new graph header with config provenance.
Sourcepub fn with_provenance_and_plugins(
node_count: usize,
edge_count: usize,
string_count: usize,
file_count: usize,
provenance: ConfigProvenance,
plugin_versions: HashMap<String, String>,
) -> Self
pub fn with_provenance_and_plugins( node_count: usize, edge_count: usize, string_count: usize, file_count: usize, provenance: ConfigProvenance, plugin_versions: HashMap<String, String>, ) -> Self
Creates a new graph header with config provenance and plugin versions.
Sourcepub fn provenance(&self) -> Option<&ConfigProvenance>
pub fn provenance(&self) -> Option<&ConfigProvenance>
Returns the config provenance if available.
Sourcepub fn has_provenance(&self) -> bool
pub fn has_provenance(&self) -> bool
Checks if the graph was built with tracked config provenance.
Sourcepub fn plugin_versions(&self) -> &HashMap<String, String>
pub fn plugin_versions(&self) -> &HashMap<String, String>
Returns the plugin versions used to build this graph.
Sourcepub fn set_plugin_versions(&mut self, versions: HashMap<String, String>)
pub fn set_plugin_versions(&mut self, versions: HashMap<String, String>)
Sets the plugin versions for this graph header.
Sourcepub fn fact_epoch(&self) -> u64
pub fn fact_epoch(&self) -> u64
Returns the monotonic fact-layer epoch stamped on this header.
Returns 0 for headers created via new / with_provenance /
with_provenance_and_plugins before the Phase 1 writer stamps a
real epoch (P1U06), and for legacy V7 snapshots loaded through the
backwards-read path (P1U07).
Sourcepub fn set_fact_epoch(&mut self, epoch: u64)
pub fn set_fact_epoch(&mut self, epoch: u64)
Sets the monotonic fact-layer epoch on this header.
Intended for use by the Phase 1 V8 writer (P1U06), which computes
the epoch via a FactEpochClock helper and stamps it immediately
before serialization. Also used by tests.
Trait Implementations§
Source§impl Clone for GraphHeader
impl Clone for GraphHeader
Source§fn clone(&self) -> GraphHeader
fn clone(&self) -> GraphHeader
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for GraphHeader
impl Debug for GraphHeader
Source§impl<'de> Deserialize<'de> for GraphHeader
impl<'de> Deserialize<'de> for GraphHeader
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for GraphHeader
impl RefUnwindSafe for GraphHeader
impl Send for GraphHeader
impl Sync for GraphHeader
impl Unpin for GraphHeader
impl UnsafeUnpin for GraphHeader
impl UnwindSafe for GraphHeader
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more