@tsonic/dotnet-pure
Version:
TypeScript type definitions for .NET 10 BCL (Base Class Library) - CLR naming
251 lines (173 loc) • 8.73 kB
TypeScript
// Generated by tsbindgen - Architecture
// Namespace: System.Diagnostics.Contracts
// Assembly: System.Private.CoreLib
// Branded primitive types are sourced from @tsonic/types
import type { sbyte, byte, short, ushort, int, uint, long, ulong, int128, uint128, half, float, double, decimal, nint, nuint, char } from '@tsonic/types';
// Import support types from @tsonic/types
import type { ptr, ref } from "@tsonic/types";
// Import types from other namespaces
import type { IEnumerable_1 } from "../../System.Collections.Generic/internal/index.js";
import type { IDictionary } from "../../System.Collections/internal/index.js";
import type { MethodBase } from "../../System.Reflection/internal/index.js";
import * as System_Runtime_Serialization_Internal from "../../System.Runtime.Serialization/internal/index.js";
import type { ISerializable, SerializationInfo, StreamingContext } from "../../System.Runtime.Serialization/internal/index.js";
import * as System_Internal from "../../System/internal/index.js";
import type { Attribute, Boolean as ClrBoolean, Enum, EventArgs, EventHandler_1, Exception, IComparable, IConvertible, IFormatProvider, IFormattable, Int32, ISpanFormattable, Object as ClrObject, Predicate_1, String as ClrString, Type, TypeCode, Void } from "../../System/internal/index.js";
// CLROf<T> - Maps ergonomic primitives to their CLR types for generic constraints
// This utility is used ONLY in generic type arguments to satisfy CLR interface constraints
// Value positions (parameters, return types) use lowercase primitives for ergonomics
export type CLROf<T> =
T extends sbyte ? System_Internal.SByte :
T extends short ? System_Internal.Int16 :
T extends int ? System_Internal.Int32 :
T extends long ? System_Internal.Int64 :
T extends int128 ? System_Internal.Int128 :
T extends nint ? System_Internal.IntPtr :
T extends byte ? System_Internal.Byte :
T extends ushort ? System_Internal.UInt16 :
T extends uint ? System_Internal.UInt32 :
T extends ulong ? System_Internal.UInt64 :
T extends uint128 ? System_Internal.UInt128 :
T extends nuint ? System_Internal.UIntPtr :
T extends half ? System_Internal.Half :
T extends float ? System_Internal.Single :
T extends double ? System_Internal.Double :
T extends decimal ? System_Internal.Decimal :
T extends char ? System_Internal.Char :
T extends boolean ? System_Internal.Boolean :
T extends string ? System_Internal.String :
T; // Identity fallback for non-primitive types
export enum ContractFailureKind {
Precondition = 0,
Postcondition = 1,
PostconditionOnException = 2,
Invariant = 3,
Assert = 4,
Assume = 5
}
export interface ContractAbbreviatorAttribute$instance extends Attribute {
}
export const ContractAbbreviatorAttribute: {
new(): ContractAbbreviatorAttribute$instance;
};
export type ContractAbbreviatorAttribute = ContractAbbreviatorAttribute$instance;
export interface ContractArgumentValidatorAttribute$instance extends Attribute {
}
export const ContractArgumentValidatorAttribute: {
new(): ContractArgumentValidatorAttribute$instance;
};
export type ContractArgumentValidatorAttribute = ContractArgumentValidatorAttribute$instance;
export interface ContractClassAttribute$instance extends Attribute {
readonly TypeContainingContracts: Type;
}
export const ContractClassAttribute: {
new(typeContainingContracts: Type): ContractClassAttribute$instance;
};
export type ContractClassAttribute = ContractClassAttribute$instance;
export interface ContractClassForAttribute$instance extends Attribute {
readonly TypeContractsAreFor: Type;
}
export const ContractClassForAttribute: {
new(typeContractsAreFor: Type): ContractClassForAttribute$instance;
};
export type ContractClassForAttribute = ContractClassForAttribute$instance;
export interface ContractException$instance extends Exception {
readonly Condition: string;
readonly Failure: string;
readonly Kind: ContractFailureKind;
readonly UserMessage: string;
GetObjectData(info: SerializationInfo, context: StreamingContext): void;
}
export const ContractException: {
new(kind: ContractFailureKind, failure: string, userMessage: string, condition: string, innerException: Exception): ContractException$instance;
};
export interface __ContractException$views {
As_ISerializable(): System_Runtime_Serialization_Internal.ISerializable$instance;
}
export type ContractException = ContractException$instance & __ContractException$views;
export interface ContractFailedEventArgs$instance extends EventArgs {
readonly Condition: string;
readonly FailureKind: ContractFailureKind;
readonly Handled: boolean;
readonly Message: string;
readonly OriginalException: Exception;
readonly Unwind: boolean;
SetHandled(): void;
SetUnwind(): void;
}
export const ContractFailedEventArgs: {
new(failureKind: ContractFailureKind, message: string, condition: string, originalException: Exception): ContractFailedEventArgs$instance;
};
export type ContractFailedEventArgs = ContractFailedEventArgs$instance;
export interface ContractInvariantMethodAttribute$instance extends Attribute {
}
export const ContractInvariantMethodAttribute: {
new(): ContractInvariantMethodAttribute$instance;
};
export type ContractInvariantMethodAttribute = ContractInvariantMethodAttribute$instance;
export interface ContractOptionAttribute$instance extends Attribute {
readonly Category: string;
readonly Enabled: boolean;
readonly Setting: string;
readonly Value: string;
}
export const ContractOptionAttribute: {
new(category: string, setting: string, enabled: boolean): ContractOptionAttribute$instance;
new(category: string, setting: string, value: string): ContractOptionAttribute$instance;
};
export type ContractOptionAttribute = ContractOptionAttribute$instance;
export interface ContractPublicPropertyNameAttribute$instance extends Attribute {
readonly Name: string;
}
export const ContractPublicPropertyNameAttribute: {
new(name: string): ContractPublicPropertyNameAttribute$instance;
};
export type ContractPublicPropertyNameAttribute = ContractPublicPropertyNameAttribute$instance;
export interface ContractReferenceAssemblyAttribute$instance extends Attribute {
}
export const ContractReferenceAssemblyAttribute: {
new(): ContractReferenceAssemblyAttribute$instance;
};
export type ContractReferenceAssemblyAttribute = ContractReferenceAssemblyAttribute$instance;
export interface ContractRuntimeIgnoredAttribute$instance extends Attribute {
}
export const ContractRuntimeIgnoredAttribute: {
new(): ContractRuntimeIgnoredAttribute$instance;
};
export type ContractRuntimeIgnoredAttribute = ContractRuntimeIgnoredAttribute$instance;
export interface ContractVerificationAttribute$instance extends Attribute {
readonly Value: boolean;
}
export const ContractVerificationAttribute: {
new(value: boolean): ContractVerificationAttribute$instance;
};
export type ContractVerificationAttribute = ContractVerificationAttribute$instance;
export interface PureAttribute$instance extends Attribute {
}
export const PureAttribute: {
new(): PureAttribute$instance;
};
export type PureAttribute = PureAttribute$instance;
export abstract class Contract$instance {
static Assert(condition: boolean, userMessage: string): void;
static Assert(condition: boolean): void;
static Assume(condition: boolean, userMessage: string): void;
static Assume(condition: boolean): void;
static EndContractBlock(): void;
static Ensures(condition: boolean, userMessage: string): void;
static Ensures(condition: boolean): void;
static EnsuresOnThrow<TException extends Exception>(condition: boolean, userMessage: string): void;
static EnsuresOnThrow<TException extends Exception>(condition: boolean): void;
static Exists<T>(collection: IEnumerable_1<T>, predicate: Predicate_1<T>): boolean;
static Exists(fromInclusive: int, toExclusive: int, predicate: Predicate_1<CLROf<int>>): boolean;
static ForAll<T>(collection: IEnumerable_1<T>, predicate: Predicate_1<T>): boolean;
static ForAll(fromInclusive: int, toExclusive: int, predicate: Predicate_1<CLROf<int>>): boolean;
static Invariant(condition: boolean, userMessage: string): void;
static Invariant(condition: boolean): void;
static OldValue<T>(value: T): T;
static Requires(condition: boolean, userMessage: string): void;
static Requires(condition: boolean): void;
static Result<T>(): T;
static ValueAtReturn<T>(value: { value: ref<T> }): T;
}
export type Contract = Contract$instance;