csharpdeeb25a2 | 1 | namespace CascadeIDE.Contracts; |
| 2 | |
| 3 | /// <summary> |
| 4 | /// Уровень стабильности контракта SDK. |
| 5 | /// </summary> |
| 6 | /// <remarks> |
| 7 | /// Это внутренняя маркировка для ясности границ в active-dev (см. ADR 0024), не публичное обещание совместимости. |
| 8 | /// </remarks> |
| 9 | public enum ApiStability |
| 10 | { |
| 11 | /// <summary>Контракт можно ломать свободно в ходе активной разработки.</summary> |
| 12 | Experimental = 0, |
| 13 | /// <summary>Контракт является опорным: breaking-change делается осознанно (с миграцией/заметкой).</summary> |
| 14 | Stable = 1 |
| 15 | } |
| 16 | |
| 17 | /// <summary> |
| 18 | /// Маркер стабильности API/контракта. |
| 19 | /// </summary> |
| 20 | /// <remarks> |
| 21 | /// В сочетании с namespace (`...Contracts.Experimental` / `...Contracts.Stable`) даёт “видимость по умолчанию” |
| 22 | /// и точечную метку для анализа/инструментов. |
| 23 | /// </remarks> |
| 24 | [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Interface | AttributeTargets.Enum |
| 25 | | AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Event, |
| 26 | Inherited = false, |
| 27 | AllowMultiple = false)] |
| 28 | public sealed class ApiStabilityAttribute : Attribute |
| 29 | { |
| 30 | /// <summary>Создать маркер стабильности.</summary> |
| 31 | public ApiStabilityAttribute(ApiStability stability) => Stability = stability; |
| 32 | |
| 33 | /// <summary>Заданная стабильность API/контракта.</summary> |
| 34 | public ApiStability Stability { get; } |
| 35 | } |
| 36 | |
| 37 | |
View only · write via MCP/CIDE