You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit c0c5ab2
Browse filesBrowse the repository at this point in the historyBrowse files
refactor!: model Solace values and StringOrStringList as type hierarchies (#55)
* refactor: model Solace integer-or-schema values as a type hierarchy
SolaceIntegerOrSchema is now an abstract base with SolaceInteger and
SolaceIntegerSchema subtypes, matching the MQTT union types. Callers use
type checks instead of null-checking Integer and Schema, and an empty
value can no longer be constructed, so Validate() is gone. Implicit
conversions from long and AsyncApiJsonSchema keep assignments such as
Priority = 7 compiling.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* refactor!: model StringOrStringList as a type hierarchy
StringOrStringList is now an abstract base with SingleString and
StringList subtypes instead of wrapping an AsyncApiAny that callers had
to inspect. Implicit conversions from string, string[] and List<string>
replace new StringOrStringList(new AsyncApiAny(...)), and invalid values
(non-strings, null items) can no longer be constructed. The Value
property is replaced by Write(IAsyncApiWriter) for serialization.
BREAKING CHANGE: the public constructor and the Value property are
removed. Construct values through the implicit conversions or the
SingleString/StringList constructors.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
/// A Solace value represented by either an integer (<see cref="SolaceInteger"/>) or a JSON Schema or schema reference (<see cref="SolaceIntegerSchema"/>).
12
+
/// </summary>
13
+
/// <remarks>Integers and schemas convert implicitly, so <c>binding.Priority = 7;</c> works.</remarks>
/// <returns>A <see cref="SolaceInteger"/> or <see cref="SolaceIntegerSchema"/>.</returns>
28
+
/// <remarks>Schema field errors handled by the reader are recorded as diagnostics. Scalar parsing errors propagate to the caller.</remarks>
29
+
/// <exception cref="ByteBard.AsyncAPI.Readers.Exceptions.AsyncApiReaderException">The scalar cannot be parsed as an Int64, or a non-scalar node is not a schema object.</exception>
30
+
/// <exception cref="ByteBard.AsyncAPI.Exceptions.AsyncApiException">A schema reference has a non-scalar $ref value.</exception>
/// Parses a scalar as a signed 64-bit integer, or an object as a schema or schema reference.
30
-
/// </summary>
31
-
/// <returns>A value containing the parsed integer or schema.</returns>
32
-
/// <remarks>Schema field errors handled by the reader are recorded as diagnostics. Scalar parsing errors propagate to the caller.</remarks>
33
-
/// <exception cref="ByteBard.AsyncAPI.Readers.Exceptions.AsyncApiReaderException">The scalar cannot be parsed as an Int64, or a non-scalar node is not a schema object.</exception>
34
-
/// <exception cref="ByteBard.AsyncAPI.Exceptions.AsyncApiException">A schema reference has a non-scalar $ref value.</exception>
0 commit comments