pub struct Chain {
pub repo: String,
pub from: String,
pub target: Option<String>,
pub line: LinkState,
pub signature: LinkState,
pub push: LinkState,
pub log: LinkState,
pub build: Option<LinkState>,
pub build_log: Option<LinkState>,
}Expand description
The chain, as far as it could be walked.
Fields§
§repo: String<namespace>/<repo>.
from: StringThe revision the walk started from.
target: Option<String>path:line, one-based, as the operator wrote it.
line: LinkStateLink 1: which commit put the line there.
signature: LinkStateLink 2: the commit’s own signature.
push: LinkStateLink 3: the push that landed the commit.
log: LinkStateLink 4: that push’s place in the transparency log.
build: Option<LinkState>Links 5–6: the build that produced the artifact, and its signature.
None when no artifact was named — the chain was walked from a line of
source and the build half was never asked about. Distinct from a link
that was asked about and could not be proven.
build_log: Option<LinkState>Link 7: the build record’s place in the build log.
Implementations§
Source§impl Chain
impl Chain
Sourcepub fn links(&self) -> Vec<(&'static str, &'static str, &LinkState)>
pub fn links(&self) -> Vec<(&'static str, &'static str, &LinkState)>
Every link, in chain order, with a stable id and a print label.
The ONE enumeration (one implementation): std::fmt::Display prints the labels,
Chain::to_proto ships the ids, and both walk this list — so a link
added here reaches the CLI and Admin.VerifyChain together, and cannot
reach one without the other.
Sourcepub fn to_proto(&self) -> VerifyChainResponse
pub fn to_proto(&self) -> VerifyChainResponse
The chain rendered for Admin.VerifyChain — a projection of
Chain::links, never a second verdict.
Sourcepub fn is_unbroken(&self) -> bool
pub fn is_unbroken(&self) -> bool
Unbroken means every link is proven. A single Unproven is not
unbroken: an unverified link is a hole in the chain, and calling it
green is exactly the false confidence the roadmap’s Risker section
names.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Chain
impl RefUnwindSafe for Chain
impl Send for Chain
impl Sync for Chain
impl Unpin for Chain
impl UnsafeUnpin for Chain
impl UnwindSafe for Chain
Blanket Implementations§
impl<T> Allocation for T
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request