pub struct Matrix { /* private fields */ }Expand description
Every versioned symbol of several glibc releases’ snapshots, with the kind
each release defines it as. Built from complete Snapshots only.
Implementations§
Source§impl Matrix
impl Matrix
Sourcepub fn load(root: &Path) -> Result<Self, String>
pub fn load(root: &Path) -> Result<Self, String>
Loads every release directory under root (the data-directory layout of
Snapshot::load); entries not named like a release are skipped.
§Errors
Fails if root cannot be read, a release directory is not a canonical
release from 2.17, there are none or more than 64, a snapshot fails to load,
or the matrix exceeds its size limits.
Sourcepub fn from_snapshots(
snapshots: impl IntoIterator<Item = Snapshot>,
) -> Result<Self, String>
pub fn from_snapshots( snapshots: impl IntoIterator<Item = Snapshot>, ) -> Result<Self, String>
Builds a matrix from snapshots already loaded.
§Errors
Fails if there are none, a release repeats, a snapshot lacks one of the eight tracked libraries or has an invalid or future-versioned symbol, or the matrix exceeds its size limits.
Sourcepub fn expect(
&self,
release: Version,
library: &str,
name: &str,
version: Version,
) -> Expectation
pub fn expect( &self, release: Version, library: &str, name: &str, version: Version, ) -> Expectation
Exact versioned export membership; not default binding or whole-link resolution.
Sourcepub fn to_tsv(&self, symbol: Option<&str>) -> String
pub fn to_tsv(&self, symbol: Option<&str>) -> String
Stable TSV with one row per library, symbol and version: the first
snapshot that has it, then one column per release (F, D:size,
T:size or absent). With symbol, only rows for that name.
Sourcepub fn diff_tsv(
&self,
from: Version,
to: Version,
symbol: Option<&str>,
) -> Result<String, String>
pub fn diff_tsv( &self, from: Version, to: Version, symbol: Option<&str>, ) -> Result<String, String>
Stable TSV of the rows that are added, removed or changed between the
from and to releases. With symbol, only rows for that name.
§Errors
Fails if either release is not in the matrix.
Sourcepub fn changes_tsv(&self) -> String
pub fn changes_tsv(&self) -> String
Matrix::diff_tsv between each pair of consecutive releases, under one
header.