pub struct LineStatus {
pub line: String,
pub counter: u64,
pub issued_at: String,
pub support_until: Option<String>,
pub yanked: BTreeMap<String, String>,
pub known_problems: Vec<KnownProblem>,
}Fields§
§line: StringThe release line, e.g. “2026.07”.
counter: u64Monotonic per-line document counter — a stale advisory must not silently replace a newer one.
issued_at: StringRFC 3339 issue time of this document.
support_until: Option<String>Stated support window end, RFC 3339 date, if committed.
yanked: BTreeMap<String, String>Yanked layers of this line, layer → reason.
known_problems: Vec<KnownProblem>Implementations§
Source§impl LineStatus
impl LineStatus
Sourcepub fn verify_and_parse(
envelope: &[u8],
root_public_key: &[u8],
) -> Result<Self, LineStatusError>
pub fn verify_and_parse( envelope: &[u8], root_public_key: &[u8], ) -> Result<Self, LineStatusError>
Verify an envelope against the trust root and parse the payload.
Sourcepub fn sign(
&self,
secret_key: &[u8],
key_id: &str,
) -> Result<String, LineStatusError>
pub fn sign( &self, secret_key: &[u8], key_id: &str, ) -> Result<String, LineStatusError>
Sign a status document (the producing side — CI, next to deposit).
Refuses a document whose yank or affected entries could never fire
(varve#61) — a typo’d layer id is cheapest to fix before the signature
exists.
Sourcepub fn sign_against(
&self,
known: &KnownLayers,
force: bool,
secret_key: &[u8],
key_id: &str,
) -> Result<(String, RefCheck), LineStatusError>
pub fn sign_against( &self, known: &KnownLayers, force: bool, secret_key: &[u8], key_id: &str, ) -> Result<(String, RefCheck), LineStatusError>
Sign, having checked every advisory reference against what the signer can actually see of the line (REQ-ADVISORY-002). Returns the envelope and a statement of which check ran — a caller that prints only “signed” implies a completeness it may not have.
Sourcepub fn check_layer_refs_against(
&self,
known: &KnownLayers,
force: bool,
) -> Result<RefCheck, LineStatusError>
pub fn check_layer_refs_against( &self, known: &KnownLayers, force: bool, ) -> Result<RefCheck, LineStatusError>
Every yank key and every affected id, checked as far as this signer
can see (REQ-ADVISORY-002).
Two checks, deliberately separated:
- SHAPE and line membership — always run, never overridable. An id
that is not a well-formed layer identifier of this line cannot
become correct later, so
--forcehas nothing to allow. - EXISTENCE — run only where a listing of the line is in reach.
--forceallows it through, because pre-signing an advisory for a layer about to be deposited is a legitimate thing to do. Silence is not: where the check does not run, the returnedRefChecksays so.
Sourcepub fn check_layer_refs(&self) -> Result<(), LineStatusError>
pub fn check_layer_refs(&self) -> Result<(), LineStatusError>
Every yank key and every known problem’s affected id must be a layer
of THIS document’s line (varve#61). report_for matches ids exactly,
and the cache is keyed per line, so an id outside the line — or one
that is not a layer id at all — is an advisory that signs fine and
then fires for nobody. Enforced wherever a producer commits the
document: sign and attach_envelope_to_layout.
Sourcepub fn report_for(&self, layer: &LayerId) -> LayerStatusReport
pub fn report_for(&self, layer: &LayerId) -> LayerStatusReport
What this document says about one layer.
Trait Implementations§
Source§impl Clone for LineStatus
impl Clone for LineStatus
Source§fn clone(&self) -> LineStatus
fn clone(&self) -> LineStatus
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more