Initial project state: .NET reference, design, Rust port (M0+M1), evidence
rust / build / test / clippy / fmt (push) Has been cancelled

Layout:
- src/                    .NET 10 x64 reference: MxNativeCodec, MxNativeClient,
                          MxAsbClient, probes, tests, harnesses. Executable spec.
- design/                 Architectural plan for the Rust port (M0–M6), error
                          model, protocol invariants, risks (R1–R16), adversarial
                          review log (review.md).
- rust/                   Rust workspace. M0 skeleton + M1 codec parity.
                          mxaccess-codec: 215 unit tests + 2 cross-implementation
                          parity tests (byte-identical against .NET reference).
                          Other crates are M0 stubs awaiting M2+.
- captures/               Frida + netsh + pcap evidence per CLAUDE.md
                          ("captures are evidence, not throwaway logs").
- analysis/               Decompiled C# (frida/proxy/decompiled-*),
                          Ghidra exports for native DLLs (`exports/` only —
                          working state at `projects/` and AVEVA's input
                          binaries at `input/` are gitignored).
- docs/                   Reverse-engineering reference docs.
- tools/                  Setup-LiveProbeEnv.ps1 (Infisical credential fetcher),
                          Compute-Crc.ps1 (.NET parity helper).
- .github/workflows/      Rust CI: fmt + build + test + clippy on Windows.
- LICENSE                 MIT (Joseph Doherty, 2026).

Verified:
- cargo test --workspace → 217 passed (215 unit + 2 .NET parity), 0 failed
- cargo clippy --workspace -- -D warnings → clean
- cargo fmt --all -- --check → clean
- cargo publish --dry-run -p mxaccess-codec → packages cleanly

Excluded from history (see .gitignore):
- **/bin, **/obj, **/target — build artifacts
- analysis/ghidra/projects/ — Ghidra working state (regenerable)
- analysis/ghidra/input/ — AVEVA proprietary DLLs (vendor IP)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Joseph Doherty
2026-05-05 06:21:00 -04:00
parent 43733699b0
commit fe2a6db786
3849 changed files with 352975 additions and 0 deletions
@@ -0,0 +1,19 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AspChildControlTypeAttribute : Attribute
{
public string TagName { get; private set; }
public Type ControlType { get; private set; }
public AspChildControlTypeAttribute(string tagName, Type controlType)
{
TagName = tagName;
ControlType = controlType;
}
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Property)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AspDataFieldAttribute : Attribute
{
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Property)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AspDataFieldsAttribute : Attribute
{
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Property)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AspMethodPropertyAttribute : Attribute
{
}
@@ -0,0 +1,20 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Parameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AspMvcActionAttribute : Attribute
{
public string AnonymousProperty { get; private set; }
public AspMvcActionAttribute()
{
}
public AspMvcActionAttribute(string anonymousProperty)
{
AnonymousProperty = anonymousProperty;
}
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Parameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AspMvcActionSelectorAttribute : Attribute
{
}
@@ -0,0 +1,20 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Parameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AspMvcAreaAttribute : Attribute
{
public string AnonymousProperty { get; private set; }
public AspMvcAreaAttribute()
{
}
public AspMvcAreaAttribute(string anonymousProperty)
{
AnonymousProperty = anonymousProperty;
}
}
@@ -0,0 +1,16 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AspMvcAreaMasterLocationFormatAttribute : Attribute
{
public string Format { get; private set; }
public AspMvcAreaMasterLocationFormatAttribute(string format)
{
Format = format;
}
}
@@ -0,0 +1,16 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AspMvcAreaPartialViewLocationFormatAttribute : Attribute
{
public string Format { get; private set; }
public AspMvcAreaPartialViewLocationFormatAttribute(string format)
{
Format = format;
}
}
@@ -0,0 +1,16 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AspMvcAreaViewLocationFormatAttribute : Attribute
{
public string Format { get; private set; }
public AspMvcAreaViewLocationFormatAttribute(string format)
{
Format = format;
}
}
@@ -0,0 +1,20 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Parameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AspMvcControllerAttribute : Attribute
{
public string AnonymousProperty { get; private set; }
public AspMvcControllerAttribute()
{
}
public AspMvcControllerAttribute(string anonymousProperty)
{
AnonymousProperty = anonymousProperty;
}
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Parameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AspMvcDisplayTemplateAttribute : Attribute
{
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Parameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AspMvcEditorTemplateAttribute : Attribute
{
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Parameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AspMvcMasterAttribute : Attribute
{
}
@@ -0,0 +1,16 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AspMvcMasterLocationFormatAttribute : Attribute
{
public string Format { get; private set; }
public AspMvcMasterLocationFormatAttribute(string format)
{
Format = format;
}
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Parameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AspMvcModelTypeAttribute : Attribute
{
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Parameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AspMvcPartialViewAttribute : Attribute
{
}
@@ -0,0 +1,16 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AspMvcPartialViewLocationFormatAttribute : Attribute
{
public string Format { get; private set; }
public AspMvcPartialViewLocationFormatAttribute(string format)
{
Format = format;
}
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AspMvcSuppressViewErrorAttribute : Attribute
{
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Parameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AspMvcTemplateAttribute : Attribute
{
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Parameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AspMvcViewAttribute : Attribute
{
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Parameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AspMvcViewComponentAttribute : Attribute
{
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Parameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AspMvcViewComponentViewAttribute : Attribute
{
}
@@ -0,0 +1,16 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AspMvcViewLocationFormatAttribute : Attribute
{
public string Format { get; private set; }
public AspMvcViewLocationFormatAttribute(string format)
{
Format = format;
}
}
@@ -0,0 +1,16 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AspRequiredAttributeAttribute : Attribute
{
public string Attribute { get; private set; }
public AspRequiredAttributeAttribute(string attribute)
{
Attribute = attribute;
}
}
@@ -0,0 +1,16 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Property)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AspTypePropertyAttribute : Attribute
{
public bool CreateConstructorReferences { get; private set; }
public AspTypePropertyAttribute(bool createConstructorReferences)
{
CreateConstructorReferences = createConstructorReferences;
}
}
@@ -0,0 +1,16 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Parameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AssertionConditionAttribute : Attribute
{
public AssertionConditionType ConditionType { get; private set; }
public AssertionConditionAttribute(AssertionConditionType conditionType)
{
ConditionType = conditionType;
}
}
@@ -0,0 +1,9 @@
namespace JetBrains.Annotations;
internal enum AssertionConditionType
{
IS_TRUE,
IS_FALSE,
IS_NULL,
IS_NOT_NULL
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Method)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class AssertionMethodAttribute : Attribute
{
}
@@ -0,0 +1,16 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class BaseTypeRequiredAttribute : Attribute
{
public Type BaseType { get; private set; }
public BaseTypeRequiredAttribute(Type baseType)
{
BaseType = baseType;
}
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Interface | AttributeTargets.Parameter | AttributeTargets.Delegate | AttributeTargets.GenericParameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class CanBeNullAttribute : Attribute
{
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Interface)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class CannotApplyEqualityOperatorAttribute : Attribute
{
}
@@ -0,0 +1,16 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class CollectionAccessAttribute : Attribute
{
public CollectionAccessType CollectionAccessType { get; private set; }
public CollectionAccessAttribute(CollectionAccessType collectionAccessType)
{
CollectionAccessType = collectionAccessType;
}
}
@@ -0,0 +1,12 @@
using System;
namespace JetBrains.Annotations;
[Flags]
internal enum CollectionAccessType
{
None = 0,
Read = 1,
ModifyExistingContent = 2,
UpdatedContent = 6
}
@@ -0,0 +1,24 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class ContractAnnotationAttribute : Attribute
{
public string Contract { get; private set; }
public bool ForceFullStates { get; private set; }
public ContractAnnotationAttribute(string contract)
: this(contract, forceFullStates: false)
{
}
public ContractAnnotationAttribute(string contract, bool forceFullStates)
{
Contract = contract;
ForceFullStates = forceFullStates;
}
}
@@ -0,0 +1,16 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class HtmlAttributeValueAttribute : Attribute
{
public string Name { get; private set; }
public HtmlAttributeValueAttribute(string name)
{
Name = name;
}
}
@@ -0,0 +1,20 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class HtmlElementAttributesAttribute : Attribute
{
public string Name { get; private set; }
public HtmlElementAttributesAttribute()
{
}
public HtmlElementAttributesAttribute(string name)
{
Name = name;
}
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Interface)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class ImplicitNotNullAttribute : Attribute
{
}
@@ -0,0 +1,13 @@
using System;
namespace JetBrains.Annotations;
[Flags]
internal enum ImplicitUseKindFlags
{
Default = 7,
Access = 1,
Assign = 2,
InstantiatedWithFixedConstructorSignature = 4,
InstantiatedNoFixedConstructorSignature = 8
}
@@ -0,0 +1,12 @@
using System;
namespace JetBrains.Annotations;
[Flags]
internal enum ImplicitUseTargetFlags
{
Default = 1,
Itself = 1,
Members = 2,
WithMembers = 3
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Parameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class InstantHandleAttribute : Attribute
{
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Parameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class InvokerParameterNameAttribute : Attribute
{
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter | AttributeTargets.Delegate)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class ItemCanBeNullAttribute : Attribute
{
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter | AttributeTargets.Delegate)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class ItemNotNullAttribute : Attribute
{
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Method)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class LinqTunnelAttribute : Attribute
{
}
@@ -0,0 +1,21 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.All)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class LocalizationRequiredAttribute : Attribute
{
public bool Required { get; private set; }
public LocalizationRequiredAttribute()
: this(required: true)
{
}
public LocalizationRequiredAttribute(bool required)
{
Required = required;
}
}
@@ -0,0 +1,15 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Parameter, AllowMultiple = true)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class MacroAttribute : Attribute
{
public string Expression { get; set; }
public int Editable { get; set; }
public string Target { get; set; }
}
@@ -0,0 +1,34 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Class | AttributeTargets.GenericParameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class MeansImplicitUseAttribute : Attribute
{
public ImplicitUseKindFlags UseKindFlags { get; private set; }
public ImplicitUseTargetFlags TargetFlags { get; private set; }
public MeansImplicitUseAttribute()
: this(ImplicitUseKindFlags.Default, ImplicitUseTargetFlags.Default)
{
}
public MeansImplicitUseAttribute(ImplicitUseKindFlags useKindFlags)
: this(useKindFlags, ImplicitUseTargetFlags.Default)
{
}
public MeansImplicitUseAttribute(ImplicitUseTargetFlags targetFlags)
: this(ImplicitUseKindFlags.Default, targetFlags)
{
}
public MeansImplicitUseAttribute(ImplicitUseKindFlags useKindFlags, ImplicitUseTargetFlags targetFlags)
{
UseKindFlags = useKindFlags;
TargetFlags = targetFlags;
}
}
@@ -0,0 +1,20 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Method)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class MustUseReturnValueAttribute : Attribute
{
public string Justification { get; private set; }
public MustUseReturnValueAttribute()
{
}
public MustUseReturnValueAttribute(string justification)
{
Justification = justification;
}
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Parameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class NoEnumerationAttribute : Attribute
{
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.All)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class NoReorder : Attribute
{
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Interface | AttributeTargets.Parameter | AttributeTargets.Delegate | AttributeTargets.GenericParameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class NotNullAttribute : Attribute
{
}
@@ -0,0 +1,20 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Method)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class NotifyPropertyChangedInvocatorAttribute : Attribute
{
public string ParameterName { get; private set; }
public NotifyPropertyChangedInvocatorAttribute()
{
}
public NotifyPropertyChangedInvocatorAttribute(string parameterName)
{
ParameterName = parameterName;
}
}
@@ -0,0 +1,20 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Parameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class PathReferenceAttribute : Attribute
{
public string BasePath { get; private set; }
public PathReferenceAttribute()
{
}
public PathReferenceAttribute(string basePath)
{
BasePath = basePath;
}
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Interface | AttributeTargets.Parameter | AttributeTargets.GenericParameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class ProvidesContextAttribute : Attribute
{
}
@@ -0,0 +1,19 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class PublicAPIAttribute : Attribute
{
public string Comment { get; private set; }
public PublicAPIAttribute()
{
}
public PublicAPIAttribute(string comment)
{
Comment = comment;
}
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Method)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class PureAttribute : Attribute
{
}
@@ -0,0 +1,16 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class RazorDirectiveAttribute : Attribute
{
public string Directive { get; private set; }
public RazorDirectiveAttribute(string directive)
{
Directive = directive;
}
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Method)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class RazorHelperCommonAttribute : Attribute
{
}
@@ -0,0 +1,16 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class RazorImportNamespaceAttribute : Attribute
{
public string Name { get; private set; }
public RazorImportNamespaceAttribute(string name)
{
Name = name;
}
}
@@ -0,0 +1,19 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class RazorInjectionAttribute : Attribute
{
public string Type { get; private set; }
public string FieldName { get; private set; }
public RazorInjectionAttribute(string type, string fieldName)
{
Type = type;
FieldName = fieldName;
}
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Property)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class RazorLayoutAttribute : Attribute
{
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Parameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class RazorSectionAttribute : Attribute
{
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Method)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class RazorWriteLiteralMethodAttribute : Attribute
{
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Method)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class RazorWriteMethodAttribute : Attribute
{
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Parameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class RazorWriteMethodParameterAttribute : Attribute
{
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Parameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class RegexPatternAttribute : Attribute
{
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Method)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class SourceTemplateAttribute : Attribute
{
}
@@ -0,0 +1,16 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Delegate)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class StringFormatMethodAttribute : Attribute
{
public string FormatParameterName { get; private set; }
public StringFormatMethodAttribute(string formatParameterName)
{
FormatParameterName = formatParameterName;
}
}
@@ -0,0 +1,11 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[Obsolete("Use [ContractAnnotation('=> halt')] instead")]
[AttributeUsage(AttributeTargets.Method)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class TerminatesProgramAttribute : Attribute
{
}
@@ -0,0 +1,34 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.All)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class UsedImplicitlyAttribute : Attribute
{
public ImplicitUseKindFlags UseKindFlags { get; private set; }
public ImplicitUseTargetFlags TargetFlags { get; private set; }
public UsedImplicitlyAttribute()
: this(ImplicitUseKindFlags.Default, ImplicitUseTargetFlags.Default)
{
}
public UsedImplicitlyAttribute(ImplicitUseKindFlags useKindFlags)
: this(useKindFlags, ImplicitUseTargetFlags.Default)
{
}
public UsedImplicitlyAttribute(ImplicitUseTargetFlags targetFlags)
: this(ImplicitUseKindFlags.Default, targetFlags)
{
}
public UsedImplicitlyAttribute(ImplicitUseKindFlags useKindFlags, ImplicitUseTargetFlags targetFlags)
{
UseKindFlags = useKindFlags;
TargetFlags = targetFlags;
}
}
@@ -0,0 +1,16 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class ValueProviderAttribute : Attribute
{
public string Name { get; private set; }
public ValueProviderAttribute(string name)
{
Name = name;
}
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Property)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class XamlItemBindingOfItemsControlAttribute : Attribute
{
}
@@ -0,0 +1,10 @@
using System;
using System.Diagnostics;
namespace JetBrains.Annotations;
[AttributeUsage(AttributeTargets.Class)]
[Conditional("JETBRAINS_ANNOTATIONS")]
internal sealed class XamlItemsControlAttribute : Attribute
{
}