pub struct ContractValuePathFacts {Show 24 fields
pub has_referenced_descendants: bool,
pub has_item_descendants: bool,
pub has_structured_item_descendants: bool,
pub used_as_fragment: bool,
pub used_as_serialized: bool,
pub used_as_yaml_serialized: bool,
pub has_string_contract: bool,
pub has_string_contract_items: bool,
pub used_as_pathless_fragment: bool,
pub accepted_values_root_fragment: bool,
pub accepted_dependency_values_root_fragment: bool,
pub is_ranged_source: bool,
pub is_direct_ranged_source: bool,
pub has_destructured_range_use: bool,
pub has_json_decoded_range_use: bool,
pub is_partial_scalar_value_path: bool,
pub has_render_use: bool,
pub has_unconditional_render_use: bool,
pub has_self_guarded_render_use: bool,
pub all_render_uses_self_guarded: bool,
pub has_merge_layered_use: bool,
pub all_render_uses_falsy_tolerant: bool,
pub has_self_range_guard_render_use: bool,
pub is_nullable: bool,
}Expand description
Schema-generation facts for one input values path.
This bundles the contract-owned path state that schema lowering needs, so generator code does not have to reconstruct semantic facts from multiple lower-level projections.
Fields§
§has_referenced_descendants: boolWhether analysis observed referenced paths below this path.
has_item_descendants: boolDescendant rows that continue through a * item segment. Item rows
describe a ranged collection’s element shape; a literal member read
(e.g. a guard probing one key of a user-populated map) does not.
has_structured_item_descendants: boolItem descendants that continue INTO element structure (p.*.field).
A bare p.* value row proves no LIST shape: range iterates maps
too, so declared-empty maps with only bare member-value rows stay
user-populated.
used_as_fragment: boolWhether the path renders as a structural YAML fragment.
used_as_serialized: boolThe path renders through a serializing or total-stringification sink
(tpl (toYaml …), quote, toString, join): any input type
renders, so the use exposes provenance but no input shape.
used_as_yaml_serialized: boolThe path is rendered through toYaml. The input kind is unrestricted,
while the resulting YAML fragment still obeys structural placement.
has_string_contract: boolA string-consuming transform (trunc, b64enc, fromYaml, a
dynamic printf format) bound a real runtime string contract on the
path: rendering fails for non-string values, so this typing survives
even when another use stringifies the path.
has_string_contract_items: boolSome path.* member row carries a runtime string contract (tpl
over each ranged member): integer iteration yields int members the
contract rejects, so the integer lane closes.
used_as_pathless_fragment: boolWhether fragment rendering lost a precise output location.
accepted_values_root_fragment: boolWhether the path may supply the chart’s complete values-root fragment.
accepted_dependency_values_root_fragment: boolWhether the path may supply a dependency values-root fragment.
is_ranged_source: boolWhether this path or one of its projections supplies a range action.
is_direct_ranged_source: boolThe chart ranges this path DIRECTLY (range .Values.x), so the
runtime iterable domain applies to the path’s own value.
has_destructured_range_use: boolSome direct range over this path uses TWO variables
(range $k, $v := …): integers iterate single-variable ranges only
(“can’t use 2 to iterate over more than one variable”).
has_json_decoded_range_use: boolSome direct range sees the path after JSON decoding, where numbers are
float64 values rather than Helm’s integer iteration counts.
is_partial_scalar_value_path: boolWhether the path contributes only part of a rendered scalar token.
has_render_use: boolWhether any rendering sink consumes the path.
has_unconditional_render_use: boolWhether a rendering sink consumes the path without a branch guard.
has_self_guarded_render_use: boolWhether any rendering sink is guarded by this path’s own truthiness.
all_render_uses_self_guarded: boolWhether every rendering sink is guarded by this path’s own truthiness.
has_merge_layered_use: boolA render consumed this path as one layer of an ordered merge: the
generator synthesizes the layer’s typing as root arms, and the
layer’s synthetic self-truthiness guard must not drive base
classification (a declared {} default stays an open map — the
merged sink renders any user-supplied members).
all_render_uses_falsy_tolerant: boolEvery render use either sits behind the path’s own truthy selection or
cannot reject a Helm-falsy value at all: a merge operand’s strict
map contract rides its fail implication (which keys on the call’s live
gate), and a checksum digest row hashes re-rendered text without
consuming the raw value. Unlike all_render_uses_self_guarded, this
bit feeds ONLY the base falsy escape — never overlay-branch routing or
declared-default placement.
has_self_range_guard_render_use: boolWhether a direct range guard protects a rendering sink for this path.
is_nullable: boolWhether observed semantics explicitly admit null.
Implementations§
Source§impl ContractValuePathFacts
impl ContractValuePathFacts
Sourcepub fn record_render_use(
&mut self,
range_guarded: bool,
self_guarded: Option<bool>,
falsy_tolerant: Option<bool>,
)
pub fn record_render_use( &mut self, range_guarded: bool, self_guarded: Option<bool>, falsy_tolerant: Option<bool>, )
Incorporates one rendering use into the aggregate path facts.
Sourcepub fn merge_render_use_facts(&mut self, other: Self)
pub fn merge_render_use_facts(&mut self, other: Self)
Merges rendering facts collected by another analysis branch.
Trait Implementations§
Source§impl Clone for ContractValuePathFacts
impl Clone for ContractValuePathFacts
Source§fn clone(&self) -> ContractValuePathFacts
fn clone(&self) -> ContractValuePathFacts
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more