Skip to content

SixelCapabilityProbeDiagnostics

Namespace: Hex1b.Sixel

Assembly: Hex1b.dll

Bounded diagnostics describing how a presentation adapter discovered Sixel support and protocol cell metrics.

csharp
public sealed record SixelCapabilityProbeDiagnostics : IEquatable<SixelCapabilityProbeDiagnostics>

Inheritance

ObjectSixelCapabilityProbeDiagnostics

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.
csharp
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>

csharp
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>

csharp
public bool? Da1DeclaresSixel { get; init; }

DisagreementDetail

A short, human-readable summary of the disagreement when is true; otherwise null.

Returns: String

csharp
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

csharp
public bool MetricsDisagreement { get; init; }

NotProbed

A diagnostics value representing "discovery has not run yet."

Returns: SixelCapabilityProbeDiagnostics

csharp
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>

csharp
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.

Released under the MIT License.