SixelCapabilityProbeDiagnostics
Namespace: Hex1b.Sixel
Assembly: Hex1b.dll
Bounded diagnostics describing how a presentation adapter discovered Sixel support and protocol cell metrics.
public sealed record SixelCapabilityProbeDiagnostics : IEquatable<SixelCapabilityProbeDiagnostics>Inheritance
Object → SixelCapabilityProbeDiagnostics
Implements
Constructors
SixelCapabilityProbeDiagnostics(IReadOnlyList<SixelMetricsProbeAttempt>, bool?, SixelCellMetrics?, bool, string?)
Bounded diagnostics describing how a presentation adapter discovered Sixel support and protocol cell metrics.
Parameters:
Attempts(IReadOnlyList<SixelMetricsProbeAttempt>): One entry per source considered during discovery, in precedence order.Da1DeclaresSixel(Nullable<Boolean>): Whether a Primary Device Attributes (DA1) reply was received and whether it declared Sixel support (DEC parameter 4). null when DA1 was not probed or timed out/was malformed — null is deliberately distinct from false so "unknown" is never confused with "confirmed unsupported."SelectedMetrics(Nullable<SixelCellMetrics>): The metrics ultimately selected after applying discovery precedence, or null if no source produced an accepted value.MetricsDisagreement(Boolean): Whether two or more accepted sources reported meaningfully different cell dimensions. The higher-precedence value still wins per the documented discovery order; this flag exists purely so callers can surface a diagnostic instead of the disagreement passing by silently.DisagreementDetail(String): A short, human-readable summary of the disagreement when is true; otherwise null.
public SixelCapabilityProbeDiagnostics(IReadOnlyList<SixelMetricsProbeAttempt> Attempts, bool? Da1DeclaresSixel, SixelCellMetrics? SelectedMetrics, bool MetricsDisagreement, string? DisagreementDetail)Properties
Attempts
One entry per source considered during discovery, in precedence order.
Returns: IReadOnlyList<SixelMetricsProbeAttempt>
public IReadOnlyList<SixelMetricsProbeAttempt> Attempts { get; init; }Da1DeclaresSixel
Whether a Primary Device Attributes (DA1) reply was received and whether it declared Sixel support (DEC parameter 4). null when DA1 was not probed or timed out/was malformed — null is deliberately distinct from false so "unknown" is never confused with "confirmed unsupported."
Returns: Nullable<Boolean>
public bool? Da1DeclaresSixel { get; init; }DisagreementDetail
A short, human-readable summary of the disagreement when is true; otherwise null.
Returns: String
public string? DisagreementDetail { get; init; }MetricsDisagreement
Whether two or more accepted sources reported meaningfully different cell dimensions. The higher-precedence value still wins per the documented discovery order; this flag exists purely so callers can surface a diagnostic instead of the disagreement passing by silently.
Returns: Boolean
public bool MetricsDisagreement { get; init; }NotProbed
A diagnostics value representing "discovery has not run yet."
Returns: SixelCapabilityProbeDiagnostics
public static SixelCapabilityProbeDiagnostics NotProbed { get; }SelectedMetrics
The metrics ultimately selected after applying discovery precedence, or null if no source produced an accepted value.
Returns: Nullable<SixelCellMetrics>
public SixelCellMetrics? SelectedMetrics { get; init; }Remarks
This is intentionally a plain data snapshot, not a live log: the probe that produces it runs once per adapter lifetime (see the owning adapter's documentation for its exact invalidation rules), and this type records only its final, bounded outcome — one per source considered, never an unbounded stream of raw bytes.
is ordered by discovery precedence (highest-precedence source first), matching the order in which sources are consulted.