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
AddedServicesIReadOnlyList<string>RemovedServicesIReadOnlyList<string>AddedMethodsIReadOnlyList<BowireMethodRef>RemovedMethodsIReadOnlyList<BowireMethodRef>ChangedMethodsIReadOnlyList<BowireMethodChange>AnnotatedMethodsIReadOnlyList<BowireMethodChange>
Properties
AddedMethods
public IReadOnlyList<BowireMethodRef> AddedMethods { get; init; }
Property Value
AddedServices
public IReadOnlyList<string> AddedServices { get; init; }
Property Value
AnnotatedMethods
public IReadOnlyList<BowireMethodChange> AnnotatedMethods { get; init; }
Property Value
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
ChangedMethods
public IReadOnlyList<BowireMethodChange> ChangedMethods { get; init; }
Property Value
Empty
An empty delta — the two snapshots are schema-identical.
public static BowireSchemaDelta Empty { get; }
Property Value
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
IsEmpty
True when neither the callable surface nor any annotation moved.
public bool IsEmpty { get; }
Property Value
RemovedMethods
public IReadOnlyList<BowireMethodRef> RemovedMethods { get; init; }
Property Value
RemovedServices
public IReadOnlyList<string> RemovedServices { get; init; }
Property Value
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
AddedServicesIReadOnlyList<string>RemovedServicesIReadOnlyList<string>AddedMethodsIReadOnlyList<BowireMethodRef>RemovedMethodsIReadOnlyList<BowireMethodRef>ChangedMethodsIReadOnlyList<BowireMethodChange>AnnotatedMethodsIReadOnlyList<BowireMethodChange>
Equals(BowireSchemaDelta?)
public bool Equals(BowireSchemaDelta? other)
Parameters
otherBowireSchemaDelta
Returns
Equals(object?)
public override bool Equals(object? obj)
Parameters
objobject
Returns
GetHashCode()
public override int GetHashCode()
Returns
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
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
ToString()
public override string ToString()
Returns
Operators
operator ==(BowireSchemaDelta?, BowireSchemaDelta?)
public static bool operator ==(BowireSchemaDelta? left, BowireSchemaDelta? right)
Parameters
leftBowireSchemaDeltarightBowireSchemaDelta
Returns
operator !=(BowireSchemaDelta?, BowireSchemaDelta?)
public static bool operator !=(BowireSchemaDelta? left, BowireSchemaDelta? right)
Parameters
leftBowireSchemaDeltarightBowireSchemaDelta