Skip to content

SizeBudgetEvaluation

Namespace: Dotsider.Core.Analysis.Models

Assembly: Dotsider.Core.dll

The outcome of evaluating one size budget: the measured values, any breached limits, and the top positive regressions inside the budget’s scope — the rows that explain a growth breach, never diluted by improvements elsewhere.

public sealed record SizeBudgetEvaluation : IEquatable<SizeBudgetEvaluation>

ObjectSizeBudgetEvaluation

SizeBudgetEvaluation(SizeBudget, bool, SizeBasis, long, long?, IReadOnlyList<SizeBudgetViolation>, IReadOnlyList<SizeDiffContributor>)

Section titled “SizeBudgetEvaluation(SizeBudget, bool, SizeBasis, long, long?, IReadOnlyList<SizeBudgetViolation>, IReadOnlyList<SizeDiffContributor>)”

The outcome of evaluating one size budget: the measured values, any breached limits, and the top positive regressions inside the budget’s scope — the rows that explain a growth breach, never diluted by improvements elsewhere.

Parameters:

  • Budget (SizeBudget): The budget that was evaluated.
  • Passed (Boolean): True when no limit was breached.
  • Basis (SizeBasis): What the measured values count: total budgets use the check’s total basis (file size for binaries, mstat total for bare reports); namespace and assembly budgets always measure mstat aggregates.
  • ActualBytes (Int64): The scope’s current size in bytes.
  • BaselineBytes (Nullable<Int64>): The scope’s baseline size in bytes, or null when the check ran without a baseline.
  • Violations (IReadOnlyList<SizeBudgetViolation>): Each breached limit, or empty when the budget passed.
  • TopContributors (IReadOnlyList<SizeDiffContributor>): The scope’s largest positive regressions (delta > 0), ordered by delta descending, up to the budget’s or the caller’s top-N.
public SizeBudgetEvaluation(SizeBudget Budget, bool Passed, SizeBasis Basis, long ActualBytes, long? BaselineBytes, IReadOnlyList<SizeBudgetViolation> Violations, IReadOnlyList<SizeDiffContributor> TopContributors)

The scope’s current size in bytes.

Returns: Int64

public long ActualBytes { get; init; }

The scope’s baseline size in bytes, or null when the check ran without a baseline.

Returns: Nullable<Int64>

public long? BaselineBytes { get; init; }

What the measured values count: total budgets use the check’s total basis (file size for binaries, mstat total for bare reports); namespace and assembly budgets always measure mstat aggregates.

Returns: SizeBasis

public SizeBasis Basis { get; init; }

The budget that was evaluated.

Returns: SizeBudget

public SizeBudget Budget { get; init; }

Growth limits that could not be evaluated because no baseline exists. Absolute limits in the same budget are still evaluated normally.

Returns: IReadOnlyList<SizeBudgetMetric>

public IReadOnlyList<SizeBudgetMetric> DeferredMetrics { get; init; }

True when no limit was breached.

Returns: Boolean

public bool Passed { get; init; }

The scope’s largest positive regressions (delta > 0), ordered by delta descending, up to the budget’s or the caller’s top-N.

Returns: IReadOnlyList<SizeDiffContributor>

public IReadOnlyList<SizeDiffContributor> TopContributors { get; init; }

Each breached limit, or empty when the budget passed.

Returns: IReadOnlyList<SizeBudgetViolation>

public IReadOnlyList<SizeBudgetViolation> Violations { get; init; }

Deconstruct(out SizeBudget, out bool, out SizeBasis, out long, out long?, out IReadOnlyList<SizeBudgetViolation>, out IReadOnlyList<SizeDiffContributor>)

Section titled “Deconstruct(out SizeBudget, out bool, out SizeBasis, out long, out long?, out IReadOnlyList<SizeBudgetViolation>, out IReadOnlyList<SizeDiffContributor>)”

Parameters:

public void Deconstruct(out SizeBudget Budget, out bool Passed, out SizeBasis Basis, out long ActualBytes, out long? BaselineBytes, out IReadOnlyList<SizeBudgetViolation> Violations, out IReadOnlyList<SizeDiffContributor> TopContributors)

Parameters:

Returns: Boolean

public override bool Equals(object? obj)

Parameters:

Returns: Boolean

public bool Equals(SizeBudgetEvaluation? other)

Returns: Int32

public override int GetHashCode()

Returns: String

public override string ToString()

operator !=(SizeBudgetEvaluation?, SizeBudgetEvaluation?)

Section titled “operator !=(SizeBudgetEvaluation?, SizeBudgetEvaluation?)”

Parameters:

Returns: Boolean

public static bool operator !=(SizeBudgetEvaluation? left, SizeBudgetEvaluation? right)

operator ==(SizeBudgetEvaluation?, SizeBudgetEvaluation?)

Section titled “operator ==(SizeBudgetEvaluation?, SizeBudgetEvaluation?)”

Parameters:

Returns: Boolean

public static bool operator ==(SizeBudgetEvaluation? left, SizeBudgetEvaluation? right)