Class BowireSchemaDelta

Namespace
Kuestenlogik.Bowire.Schemas
Assembly
Kuestenlogik.Bowire.dll

The delta between two API discovery snapshots (base → head): which services and methods were added, removed, or changed. This is the C# counterpart of the workbench's #185 schema-watch delta (wwwroot/js/api.js schemaDiff), so the CLI, the PR bot, and the live workbench classify a schema change the same way. Produced by BowireSchemaDiff.

public sealed record BowireSchemaDelta : IEquatable<BowireSchemaDelta>
Inheritance
BowireSchemaDelta
Implements
Inherited Members

Constructors

BowireSchemaDelta(IReadOnlyList<string>, IReadOnlyList<string>, IReadOnlyList<BowireMethodRef>, IReadOnlyList<BowireMethodRef>, IReadOnlyList<BowireMethodChange>, IReadOnlyList<BowireMethodChange>)

The delta between two API discovery snapshots (base → head): which services and methods were added, removed, or changed. This is the C# counterpart of the workbench's #185 schema-watch delta (wwwroot/js/api.js schemaDiff), so the CLI, the PR bot, and the live workbench classify a schema change the same way. Produced by BowireSchemaDiff.

public BowireSchemaDelta(IReadOnlyList<string> AddedServices, IReadOnlyList<string> RemovedServices, IReadOnlyList<BowireMethodRef> AddedMethods, IReadOnlyList<BowireMethodRef> RemovedMethods, IReadOnlyList<BowireMethodChange> ChangedMethods, IReadOnlyList<BowireMethodChange> AnnotatedMethods)

Parameters

AddedServices IReadOnlyList<string>
RemovedServices IReadOnlyList<string>
AddedMethods IReadOnlyList<BowireMethodRef>
RemovedMethods IReadOnlyList<BowireMethodRef>
ChangedMethods IReadOnlyList<BowireMethodChange>
AnnotatedMethods IReadOnlyList<BowireMethodChange>

Properties

AddedMethods

public IReadOnlyList<BowireMethodRef> AddedMethods { get; init; }

Property Value

IReadOnlyList<BowireMethodRef>

AddedServices

public IReadOnlyList<string> AddedServices { get; init; }

Property Value

IReadOnlyList<string>

AnnotatedMethods

public IReadOnlyList<BowireMethodChange> AnnotatedMethods { get; init; }

Property Value

IReadOnlyList<BowireMethodChange>

CallableMoved

True when anything on the callable surface moved (a service or method added/removed, or a signature/deprecation change). Prose-only annotation edits do NOT set this — the same discipline the workbench applies so a description edit never trips an alert.

public bool CallableMoved { get; }

Property Value

bool

ChangedMethods

public IReadOnlyList<BowireMethodChange> ChangedMethods { get; init; }

Property Value

IReadOnlyList<BowireMethodChange>

Empty

An empty delta — the two snapshots are schema-identical.

public static BowireSchemaDelta Empty { get; }

Property Value

BowireSchemaDelta

HasBreakingChanges

True when a consumer could break: a removed service or method, or a signature change. Additions and pure deprecation/annotation edits are non-breaking. This is what a PR check's fail-on=breaking gates on.

public bool HasBreakingChanges { get; }

Property Value

bool

IsEmpty

True when neither the callable surface nor any annotation moved.

public bool IsEmpty { get; }

Property Value

bool

RemovedMethods

public IReadOnlyList<BowireMethodRef> RemovedMethods { get; init; }

Property Value

IReadOnlyList<BowireMethodRef>

RemovedServices

public IReadOnlyList<string> RemovedServices { get; init; }

Property Value

IReadOnlyList<string>

Methods

Deconstruct(out IReadOnlyList<string>, out IReadOnlyList<string>, out IReadOnlyList<BowireMethodRef>, out IReadOnlyList<BowireMethodRef>, out IReadOnlyList<BowireMethodChange>, out IReadOnlyList<BowireMethodChange>)

public void Deconstruct(out IReadOnlyList<string> AddedServices, out IReadOnlyList<string> RemovedServices, out IReadOnlyList<BowireMethodRef> AddedMethods, out IReadOnlyList<BowireMethodRef> RemovedMethods, out IReadOnlyList<BowireMethodChange> ChangedMethods, out IReadOnlyList<BowireMethodChange> AnnotatedMethods)

Parameters

AddedServices IReadOnlyList<string>
RemovedServices IReadOnlyList<string>
AddedMethods IReadOnlyList<BowireMethodRef>
RemovedMethods IReadOnlyList<BowireMethodRef>
ChangedMethods IReadOnlyList<BowireMethodChange>
AnnotatedMethods IReadOnlyList<BowireMethodChange>

Equals(BowireSchemaDelta?)

public bool Equals(BowireSchemaDelta? other)

Parameters

other BowireSchemaDelta

Returns

bool

Equals(object?)

public override bool Equals(object? obj)

Parameters

obj object

Returns

bool

GetHashCode()

public override int GetHashCode()

Returns

int

Summary()

One-line summary, e.g. +1 service, +2 methods, ~1 changed. ASCII on purpose (mirrors the workbench schemaDeltaSummary but drops the Unicode +/−/± so the line survives any CI log or bash pipeline untouched).

public string Summary()

Returns

string

ToMarkdown()

Render the delta as the "API schema" section of the PR-bot markdown comment: a summary line, then a bullet list per bucket. Pure ASCII so it travels cleanly through the GitHub API and any CI shell.

public string ToMarkdown()

Returns

string

ToString()

public override string ToString()

Returns

string

Operators

operator ==(BowireSchemaDelta?, BowireSchemaDelta?)

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

Parameters

left BowireSchemaDelta
right BowireSchemaDelta

Returns

bool

operator !=(BowireSchemaDelta?, BowireSchemaDelta?)

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

Parameters

left BowireSchemaDelta
right BowireSchemaDelta

Returns

bool