From 23a763c467f528f0a21b1dd405e1c964ef6fe5ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9F=96=A4=20ShadowNine=20=F0=9F=92=9B?= Date: Wed, 7 Oct 2026 17:06:33 +0200 Subject: [PATCH] Add optional Lua operations and prepare the 1.1 development line --- CHANGELOG.md | 13 + Directory.Build.props | 7 +- README.md | 2 +- RELEASING.md | 20 +- ROADMAP.md | 21 +- eng/Shipping.props | 7 +- .../Lua/LuaOptional.cs | 122 ++ .../PublicAPI.Shipped.txt | 1177 ++++++++++++++++ .../PublicAPI.Unshipped.txt | 1193 +---------------- .../CheatEngine.Client.Abstractions/README.md | 3 +- .../PublicAPI.Shipped.txt | 19 + .../PublicAPI.Unshipped.txt | 19 - .../packages.lock.json | 2 +- .../PublicAPI.Shipped.txt | 68 + .../PublicAPI.Unshipped.txt | 68 - .../PublicAPI.Shipped.txt | 21 + .../PublicAPI.Unshipped.txt | 21 - .../packages.lock.json | 6 +- .../AnalyzerReleases.Shipped.md | 23 + .../AnalyzerReleases.Unshipped.md | 16 - .../CheatEngineLuaDiagnostics.cs | 2 +- .../CheatEngineLuaGenerator.cs | 30 + .../Model/OperationModel.cs | 22 +- .../OperationEmitter.cs | 59 +- .../OperationParser.cs | 60 +- .../README.md | 22 +- src/CheatEngine.Client/packages.lock.json | 10 +- .../CheatEngine.Plugin.csproj | 2 +- .../Lua/LuaContractTests.cs | 41 + .../packages.lock.json | 14 +- .../packages.lock.json | 8 +- .../packages.lock.json | 2 +- .../packages.lock.json | 6 +- .../packages.lock.json | 2 +- .../packages.lock.json | 8 +- .../PluginA/packages.lock.json | 8 +- .../PluginB/packages.lock.json | 8 +- .../PluginCollision/packages.lock.json | 8 +- .../packages.lock.json | 8 +- .../GeneratedLuaSurfaceRatchetTests.cs | 52 +- .../CheatEngineLuaGeneratorTests.cs | 188 +++ .../RealSdkGeneratorCompositionTests.cs | 29 +- .../OptionalOperationEndToEndTests.cs | 287 ++++ .../packages.lock.json | 6 +- .../Architecture/PublicApiCharterTests.cs | 2 + .../Packaging/PackagedClientFeedFixture.cs | 3 +- .../packages.lock.json | 14 +- 47 files changed, 2319 insertions(+), 1410 deletions(-) create mode 100644 libs/CheatEngine.Client.Abstractions/Lua/LuaOptional.cs create mode 100644 tests/CheatEngine.Client.SourceGenerators.Lua.Tests/EndToEnd/OptionalOperationEndToEndTests.cs diff --git a/CHANGELOG.md b/CHANGELOG.md index 891492f..515ccd2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,12 +25,25 @@ ship. ### Added +- **Optional Lua operations.** Generated operations accept trailing SDK `LuaOptional` inputs of SDK-supported + scalar types and one optional trailing `out` result on a `bool` binding. Their public surface uses the Client-owned + `LuaOptional` and its + `Omitted`, `Nil` and `Of` factories; omitted arguments, absent results, explicit `nil` and present values stay + distinct. Result mappers run only for present optional values. Existing scalar operation signatures stay unchanged. + ### Changed +- **Roadmap status.** Historical work items now distinguish shipped implementations, deliberately deferred domains + and outstanding live qualification or hosted performance evidence. + ### Security ### Deployment +- **1.1 development line.** Record the published 1.0.0 public API and analyzer rules as shipped, set the MinVer floor + and template defaults to 1.1, and regenerate the project-reference lock files. Package validation compares against + published 1.0.0 packages with strict baseline equality disabled, permitting additive APIs while checking breaks. + ## [1.0.0] - 2026-09-25 The first release of CheatEngine.Client: high-level, activation-scoped C# APIs for Cheat Engine 7.7 x64 plugins, built diff --git a/Directory.Build.props b/Directory.Build.props index e21f995..fa078de 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -56,15 +56,16 @@ v - - 1.0 + + 1.1 $(MinVerMinimumMajorMinor).0 <_CheatEngineClientRootVersionPrefix>$(VersionPrefix) + 1.0.0 $(CheatEngineClientPackageValidationBaselineVersion) diff --git a/libs/CheatEngine.Client.Abstractions/Lua/LuaOptional.cs b/libs/CheatEngine.Client.Abstractions/Lua/LuaOptional.cs new file mode 100644 index 0000000..19edd53 --- /dev/null +++ b/libs/CheatEngine.Client.Abstractions/Lua/LuaOptional.cs @@ -0,0 +1,122 @@ +using System.Diagnostics.CodeAnalysis; + +namespace CheatEngine.Client.Lua; + +/// Creates Client-owned optional Lua values without exposing the SDK marshalling type. +public static class LuaOptional +{ + /// Creates an omitted value, which passes no Lua argument or represents no Lua result. + /// The non-null copied value type. + /// An omitted optional value. + public static LuaOptional Omitted() + where T : notnull + { + return default; + } + + /// Creates an explicit Lua nil value. + /// The non-null copied value type. + /// An optional value representing explicit Lua nil. + public static LuaOptional Nil() + where T : notnull + { + return new LuaOptional(LuaOptionalState.Nil, default!); + } + + /// Creates a present Lua value. + /// The non-null copied value type. + /// The present non-null value. + /// An optional value containing . + /// is . + public static LuaOptional Of(T value) + where T : notnull + { + ArgumentNullException.ThrowIfNull(value); + return new LuaOptional(LuaOptionalState.Value, value); + } +} + +/// One optional Lua value: omitted, explicit nil, or a present non-null value. +/// The copied Client value type. +public readonly struct LuaOptional : IEquatable> + where T : notnull +{ + private readonly LuaOptionalState _state; + private readonly T _value; + + internal LuaOptional(LuaOptionalState state, T value) + { + _state = state; + _value = value; + } + + /// Gets whether no value was passed or returned. + public bool IsOmitted => _state == LuaOptionalState.Omitted; + + /// Gets whether Lua explicitly passed or returned nil. + public bool IsNil => _state == LuaOptionalState.Nil; + + /// Gets whether a non-null value was passed or returned. + public bool HasValue => _state == LuaOptionalState.Value; + + /// Gets the present value, or the safe default when the value is omitted or nil. + /// Use or to distinguish an absent value from a present default. + public T? Value => HasValue ? _value : default; + + /// Gets the value when it is present. + /// The present value, or the safe default when omitted or nil. + /// when a present value was copied to . + public bool TryGetValue([NotNullWhen(true)] out T? value) + { + value = HasValue ? _value : default!; + return HasValue; + } + + /// Compares this optional value's state and present value with another optional value. + /// The optional value to compare. + /// when the states and any present values are equal. + public bool Equals(LuaOptional other) + { + return _state == other._state && (!HasValue || EqualityComparer.Default.Equals(_value, other._value)); + } + + /// Compares this optional value with an object of the same optional type. + /// The object to compare. + /// when the object has the same state and any present value. + public override bool Equals(object? obj) + { + return obj is LuaOptional other && Equals(other); + } + + /// Computes a hash of this optional value's state and any present value. + /// The hash code consistent with optional-value equality. + public override int GetHashCode() + { + return HasValue ? HashCode.Combine((int) _state, _value) : (int) _state; + } + + /// Compares the state and, for present values, the value. + /// The first optional value. + /// The second optional value. + /// when both optional values are equal. + public static bool operator ==(LuaOptional left, LuaOptional right) + { + return left.Equals(right); + } + + /// Compares the state and, for present values, the value. + /// The first optional value. + /// The second optional value. + /// when the optional values differ. + public static bool operator !=(LuaOptional left, LuaOptional right) + { + return !left.Equals(right); + } +} + +internal enum LuaOptionalState : byte +{ + Omitted, + Nil, + Value +} diff --git a/libs/CheatEngine.Client.Abstractions/PublicAPI.Shipped.txt b/libs/CheatEngine.Client.Abstractions/PublicAPI.Shipped.txt index 7dc5c58..38c900e 100644 --- a/libs/CheatEngine.Client.Abstractions/PublicAPI.Shipped.txt +++ b/libs/CheatEngine.Client.Abstractions/PublicAPI.Shipped.txt @@ -1 +1,1178 @@ #nullable enable +CheatEngine.Client.Dispatching.ICheatEngineDispatcher +CheatEngine.Client.Dispatching.ICheatEngineDispatcher.Invoke(System.Action! callback) -> void +CheatEngine.Client.Dispatching.ICheatEngineDispatcher.Invoke(System.Action! callback, System.Threading.CancellationToken cancellationToken) -> void +CheatEngine.Client.Dispatching.ICheatEngineDispatcher.Invoke(System.Func! callback) -> T +CheatEngine.Client.Dispatching.ICheatEngineDispatcher.Invoke(System.Func! callback, System.Threading.CancellationToken cancellationToken) -> T +CheatEngine.Client.Dispatching.ICheatEngineDispatcher.IsMainThread.get -> bool +CheatEngine.Client.Dispatching.ICheatEngineDispatcher.TryInvoke(System.Action! callback, out CheatEngine.Client.Results.CheatEngineFailure failure) -> bool +CheatEngine.Client.Dispatching.ICheatEngineDispatcher.TryInvoke(System.Action! callback, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken) -> bool +CheatEngine.Client.Dispatching.ICheatEngineDispatcher.TryInvoke(System.Func! callback, out T result, out CheatEngine.Client.Results.CheatEngineFailure failure) -> bool +CheatEngine.Client.Dispatching.ICheatEngineDispatcher.TryInvoke(System.Func! callback, out T result, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken) -> bool +CheatEngine.Client.ICheatEngineClient +CheatEngine.Client.ICheatEngineClient.Dispatcher.get -> CheatEngine.Client.Dispatching.ICheatEngineDispatcher! +CheatEngine.Client.ICheatEngineClient.Epoch.get -> long +CheatEngine.Client.ICheatEngineClient.Inspection.get -> CheatEngine.Client.Inspection.IInspectionClient! +CheatEngine.Client.ICheatEngineClient.Lua.get -> CheatEngine.Client.Lua.ILuaClient! +CheatEngine.Client.ICheatEngineClient.Memory.get -> CheatEngine.Client.Memory.IMemoryClient! +CheatEngine.Client.ICheatEngineClient.Patterns.get -> CheatEngine.Client.Scanning.IPatternScanner! +CheatEngine.Client.ICheatEngineClient.Processes.get -> CheatEngine.Client.Processes.IProcessClient! +CheatEngine.Client.ICheatEngineClient.Runtime.get -> CheatEngine.Client.Runtime.ICheatEngineRuntime! +CheatEngine.Client.ICheatEngineClient.Stopping.get -> System.Threading.CancellationToken +CheatEngine.Client.ICheatEngineClient.Tables.get -> CheatEngine.Client.Tables.ITableClient! +CheatEngine.Client.ICheatEngineLease +CheatEngine.Client.ICheatEngineLease.IsReleased.get -> bool +CheatEngine.Client.ICheatEngineLease.LastReleaseOutcome.get -> CheatEngine.Client.Results.LeaseReleaseOutcome? +CheatEngine.Client.ICheatEngineLease.Release() -> CheatEngine.Client.Results.LeaseReleaseOutcome +CheatEngine.Client.ICheatEngineLease.RequiresManualRecovery.get -> bool +CheatEngine.Client.Inspection.AddressResolutionMode +CheatEngine.Client.Inspection.AddressResolutionMode.Default = 0 -> CheatEngine.Client.Inspection.AddressResolutionMode +CheatEngine.Client.Inspection.AddressResolutionMode.Shallow = 1 -> CheatEngine.Client.Inspection.AddressResolutionMode +CheatEngine.Client.Inspection.IInspectionClient +CheatEngine.Client.Inspection.IInspectionClient.GetMemoryRegion(CheatEngine.SDK.Engine.Values.Address address, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.SDK.Engine.Inspection.MemoryRegionInfo +CheatEngine.Client.Inspection.IInspectionClient.GetMemoryRegions(CheatEngine.Client.Inspection.InspectionCollectionRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Immutable.ImmutableArray +CheatEngine.Client.Inspection.IInspectionClient.GetModuleSections(CheatEngine.SDK.Engine.Inspection.ModuleName moduleName, CheatEngine.Client.Inspection.InspectionCollectionRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Immutable.ImmutableArray +CheatEngine.Client.Inspection.IInspectionClient.GetModules(CheatEngine.Client.Inspection.InspectionCollectionRequest request, CheatEngine.SDK.Engine.Inspection.TargetProcessId? processId = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Immutable.ImmutableArray +CheatEngine.Client.Inspection.IInspectionClient.GetSymbol(CheatEngine.SDK.Engine.Inspection.SymbolExpression expression, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.SDK.Engine.Inspection.SymbolInfo +CheatEngine.Client.Inspection.IInspectionClient.RegisterSymbol(CheatEngine.Client.Inspection.SymbolRegistration registration, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Inspection.ISymbolRegistrationLease! +CheatEngine.Client.Inspection.IInspectionClient.ResolveAddress(CheatEngine.SDK.Engine.Inspection.SymbolExpression expression, CheatEngine.Client.Inspection.AddressResolutionMode mode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.SDK.Engine.Values.Address +CheatEngine.Client.Inspection.IInspectionClient.ResolveName(CheatEngine.SDK.Engine.Values.Address address, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> string! +CheatEngine.Client.Inspection.IInspectionClient.TryGetMemoryRegion(CheatEngine.SDK.Engine.Values.Address address, out CheatEngine.SDK.Engine.Inspection.MemoryRegionInfo region, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Inspection.IInspectionClient.TryGetMemoryRegions(CheatEngine.Client.Inspection.InspectionCollectionRequest request, out System.Collections.Immutable.ImmutableArray regions, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Inspection.IInspectionClient.TryGetModuleSections(CheatEngine.SDK.Engine.Inspection.ModuleName moduleName, CheatEngine.Client.Inspection.InspectionCollectionRequest request, out System.Collections.Immutable.ImmutableArray sections, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Inspection.IInspectionClient.TryGetModules(CheatEngine.Client.Inspection.InspectionCollectionRequest request, CheatEngine.SDK.Engine.Inspection.TargetProcessId? processId, out System.Collections.Immutable.ImmutableArray modules, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Inspection.IInspectionClient.TryGetSymbol(CheatEngine.SDK.Engine.Inspection.SymbolExpression expression, out CheatEngine.SDK.Engine.Inspection.SymbolInfo symbol, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Inspection.IInspectionClient.TryRegisterSymbol(CheatEngine.Client.Inspection.SymbolRegistration registration, out CheatEngine.Client.Inspection.ISymbolRegistrationLease? lease, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Inspection.IInspectionClient.TryResolveAddress(CheatEngine.SDK.Engine.Inspection.SymbolExpression expression, CheatEngine.Client.Inspection.AddressResolutionMode mode, out CheatEngine.SDK.Engine.Values.Address address, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Inspection.IInspectionClient.TryResolveName(CheatEngine.SDK.Engine.Values.Address address, out string? name, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Inspection.ISymbolRegistrationLease +CheatEngine.Client.Inspection.ISymbolRegistrationLease.Address.get -> CheatEngine.SDK.Engine.Values.Address +CheatEngine.Client.Inspection.ISymbolRegistrationLease.Name.get -> string! +CheatEngine.Client.Inspection.InspectionCollectionRequest +CheatEngine.Client.Inspection.InspectionCollectionRequest.Equals(CheatEngine.Client.Inspection.InspectionCollectionRequest other) -> bool +CheatEngine.Client.Inspection.InspectionCollectionRequest.InspectionCollectionRequest() -> void +CheatEngine.Client.Inspection.InspectionCollectionRequest.InspectionCollectionRequest(int maximumItems) -> void +CheatEngine.Client.Inspection.InspectionCollectionRequest.MaximumItems.get -> int +CheatEngine.Client.Inspection.SymbolRegistration +CheatEngine.Client.Inspection.SymbolRegistration.Address.get -> CheatEngine.SDK.Engine.Values.Address +CheatEngine.Client.Inspection.SymbolRegistration.DoNotSave.get -> bool +CheatEngine.Client.Inspection.SymbolRegistration.Equals(CheatEngine.Client.Inspection.SymbolRegistration other) -> bool +CheatEngine.Client.Inspection.SymbolRegistration.Name.get -> string! +CheatEngine.Client.Inspection.SymbolRegistration.SymbolRegistration() -> void +CheatEngine.Client.Inspection.SymbolRegistration.SymbolRegistration(string! name, CheatEngine.SDK.Engine.Values.Address address, bool doNotSave = true) -> void +CheatEngine.Client.Lua.CheatEngineLuaModuleAttribute +CheatEngine.Client.Lua.CheatEngineLuaModuleAttribute.BindingsType.get -> System.Type! +CheatEngine.Client.Lua.CheatEngineLuaModuleAttribute.CheatEngineLuaModuleAttribute(System.Type! bindingsType, string? name = null) -> void +CheatEngine.Client.Lua.CheatEngineLuaModuleAttribute.Name.get -> string? +CheatEngine.Client.Lua.CheatEngineLuaOperationAttribute +CheatEngine.Client.Lua.CheatEngineLuaOperationAttribute.CheatEngineLuaOperationAttribute() -> void +CheatEngine.Client.Lua.CheatEngineLuaOperationAttribute.CheatEngineLuaOperationAttribute(System.Type! mapperType) -> void +CheatEngine.Client.Lua.CheatEngineLuaOperationAttribute.MapperType.get -> System.Type? +CheatEngine.Client.Lua.ILuaClient +CheatEngine.Client.Lua.ILuaClient.Execute(in TOperation operation, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> TResult +CheatEngine.Client.Lua.ILuaClient.RegisterModule(CheatEngine.Client.Lua.ILuaModule! luaModule, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Lua.ILuaModuleLease! +CheatEngine.Client.Lua.ILuaClient.TryExecute(in TOperation operation, out TResult result, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Lua.ILuaClient.TryRegisterModule(CheatEngine.Client.Lua.ILuaModule! luaModule, out CheatEngine.Client.Lua.ILuaModuleLease? lease, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Lua.ILuaExecutionContext +CheatEngine.Client.Lua.ILuaExecutionContext.Epoch.get -> long +CheatEngine.Client.Lua.ILuaExecutionContext.IsActive.get -> bool +CheatEngine.Client.Lua.ILuaExecutionContext.ThrowIfExpired() -> void +CheatEngine.Client.Lua.ILuaModule +CheatEngine.Client.Lua.ILuaModule.Descriptor.get -> CheatEngine.Client.Lua.LuaModuleDescriptor +CheatEngine.Client.Lua.ILuaModule.Register() -> void +CheatEngine.Client.Lua.ILuaModule.Unregister() -> CheatEngine.Client.Lua.LuaModuleReleaseOutcome! +CheatEngine.Client.Lua.ILuaModuleLease +CheatEngine.Client.Lua.ILuaModuleLease.LastModuleReleaseOutcome.get -> CheatEngine.Client.Lua.LuaModuleReleaseOutcome? +CheatEngine.Client.Lua.ILuaOperation +CheatEngine.Client.Lua.ILuaOperation.TryExecute(CheatEngine.Client.Lua.ILuaExecutionContext! context, out TResult result, out CheatEngine.Client.Results.CheatEngineFailure failure) -> bool +CheatEngine.Client.Lua.ILuaResultMapper +CheatEngine.Client.Lua.ILuaResultMapper.Map(TSource source) -> TResult +CheatEngine.Client.Lua.IUnsafeLuaClient +CheatEngine.Client.Lua.IUnsafeLuaClient.Execute(CheatEngine.Client.Lua.LuaScript script, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void +CheatEngine.Client.Lua.IUnsafeLuaClient.TryExecute(CheatEngine.Client.Lua.LuaScript script, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Lua.LuaExportDescriptor +CheatEngine.Client.Lua.LuaExportDescriptor.Equals(CheatEngine.Client.Lua.LuaExportDescriptor other) -> bool +CheatEngine.Client.Lua.LuaExportDescriptor.LuaExportDescriptor() -> void +CheatEngine.Client.Lua.LuaExportDescriptor.LuaExportDescriptor(string! name) -> void +CheatEngine.Client.Lua.LuaExportDescriptor.Name.get -> string! +CheatEngine.Client.Lua.LuaModuleDescriptor +CheatEngine.Client.Lua.LuaModuleDescriptor.Exports.get -> System.Collections.Immutable.ImmutableArray +CheatEngine.Client.Lua.LuaModuleDescriptor.LuaModuleDescriptor() -> void +CheatEngine.Client.Lua.LuaModuleDescriptor.LuaModuleDescriptor(string! name, System.Collections.Immutable.ImmutableArray exports) -> void +CheatEngine.Client.Lua.LuaModuleDescriptor.Name.get -> string! +CheatEngine.Client.Lua.LuaModuleReleaseOutcome +CheatEngine.Client.Lua.LuaModuleReleaseOutcome.FailedExports.get -> System.Collections.Immutable.ImmutableArray +CheatEngine.Client.Lua.LuaModuleReleaseOutcome.IsComplete.get -> bool +CheatEngine.Client.Lua.LuaModuleReleaseOutcome.Kind.get -> CheatEngine.Client.Results.LeaseReleaseKind +CheatEngine.Client.Lua.LuaModuleReleaseOutcome.ModuleName.get -> string! +CheatEngine.Client.Lua.LuaModuleReleaseOutcome.RemainingCount.get -> int +CheatEngine.Client.Lua.LuaModuleReleaseOutcome.RemovedCount.get -> int +CheatEngine.Client.Lua.LuaModuleReleaseOutcome.ReplacementCount.get -> int +CheatEngine.Client.Lua.LuaModuleReleaseOutcome.RestoredCount.get -> int +CheatEngine.Client.Lua.LuaScript +CheatEngine.Client.Lua.LuaScript.ChunkName.get -> string? +CheatEngine.Client.Lua.LuaScript.Equals(CheatEngine.Client.Lua.LuaScript other) -> bool +CheatEngine.Client.Lua.LuaScript.LuaScript() -> void +CheatEngine.Client.Lua.LuaScript.LuaScript(string! source, string? chunkName = null) -> void +CheatEngine.Client.Lua.LuaScript.Source.get -> string! +CheatEngine.Client.Memory.IMemoryClient +CheatEngine.Client.Memory.IMemoryClient.Read(CheatEngine.Client.Memory.MemoryReadRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> T +CheatEngine.Client.Memory.IMemoryClient.ReadBytes(CheatEngine.Client.Memory.MemoryBytesReadRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Immutable.ImmutableArray +CheatEngine.Client.Memory.IMemoryClient.ReadBytesDetailed(CheatEngine.Client.Memory.MemoryBytesReadRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Memory.MemoryBytesReadOutcome! +CheatEngine.Client.Memory.IMemoryClient.ReadPrimitive(CheatEngine.SDK.Engine.Values.Address address, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> T +CheatEngine.Client.Memory.IMemoryClient.ReadPrimitiveBatch(CheatEngine.Client.Memory.MemoryPrimitiveBatchReadRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Immutable.ImmutableArray +CheatEngine.Client.Memory.IMemoryClient.ReadPrimitiveBatchDetailed(CheatEngine.Client.Memory.MemoryPrimitiveBatchReadRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Memory.MemoryPrimitiveBatchReadOutcome! +CheatEngine.Client.Memory.IMemoryClient.ReadString(CheatEngine.Client.Memory.MemoryStringReadRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> string! +CheatEngine.Client.Memory.IMemoryClient.ResolvePointerChain(CheatEngine.Client.Memory.PointerChainRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.SDK.Engine.Values.Address +CheatEngine.Client.Memory.IMemoryClient.TryRead(CheatEngine.Client.Memory.MemoryReadRequest request, out T value, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Memory.IMemoryClient.TryReadBytes(CheatEngine.Client.Memory.MemoryBytesReadRequest request, out System.Collections.Immutable.ImmutableArray bytes, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Memory.IMemoryClient.TryReadPrimitive(CheatEngine.SDK.Engine.Values.Address address, out T value, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Memory.IMemoryClient.TryReadPrimitiveBatch(CheatEngine.Client.Memory.MemoryPrimitiveBatchReadRequest request, out System.Collections.Immutable.ImmutableArray values, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Memory.IMemoryClient.TryReadString(CheatEngine.Client.Memory.MemoryStringReadRequest request, out string? value, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Memory.IMemoryClient.TryResolvePointerChain(CheatEngine.Client.Memory.PointerChainRequest request, out CheatEngine.SDK.Engine.Values.Address address, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Memory.IMemoryClient.TryWrite(CheatEngine.Client.Memory.MemoryWriteRequest request, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Memory.IMemoryClient.TryWriteBytes(CheatEngine.Client.Memory.MemoryBytesWriteRequest request, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Memory.IMemoryClient.TryWritePrimitive(CheatEngine.SDK.Engine.Values.Address address, T value, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Memory.IMemoryClient.TryWritePrimitiveBatch(CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteRequest request, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Memory.IMemoryClient.TryWriteString(CheatEngine.Client.Memory.MemoryStringWriteRequest request, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Memory.IMemoryClient.Write(CheatEngine.Client.Memory.MemoryWriteRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void +CheatEngine.Client.Memory.IMemoryClient.WriteBytes(CheatEngine.Client.Memory.MemoryBytesWriteRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void +CheatEngine.Client.Memory.IMemoryClient.WritePrimitive(CheatEngine.SDK.Engine.Values.Address address, T value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void +CheatEngine.Client.Memory.IMemoryClient.WritePrimitiveBatch(CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void +CheatEngine.Client.Memory.IMemoryClient.WritePrimitiveBatchDetailed(CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteOutcome! +CheatEngine.Client.Memory.IMemoryClient.WriteString(CheatEngine.Client.Memory.MemoryStringWriteRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void +CheatEngine.Client.Memory.IMemoryCodec +CheatEngine.Client.Memory.IMemoryCodec.TryRead(CheatEngine.Client.Memory.IMemoryReadContext! context, CheatEngine.SDK.Engine.Values.Address address, out T value, out CheatEngine.Client.Results.CheatEngineFailure failure) -> bool +CheatEngine.Client.Memory.IMemoryCodec.TryWrite(CheatEngine.Client.Memory.IMemoryWriteContext! context, CheatEngine.SDK.Engine.Values.Address address, in T value, out CheatEngine.Client.Results.CheatEngineFailure failure) -> bool +CheatEngine.Client.Memory.IMemoryReadContext +CheatEngine.Client.Memory.IMemoryReadContext.Bitness.get -> CheatEngine.SDK.Engine.Runtime.PointerSize +CheatEngine.Client.Memory.IMemoryReadContext.ConfiguredPointerSize.get -> CheatEngine.SDK.Engine.Runtime.PointerSize +CheatEngine.Client.Memory.IMemoryReadContext.ConfiguredPointerSizeBytes.get -> int? +CheatEngine.Client.Memory.IMemoryReadContext.ConfiguredPointerSizeDiffersFromBitness.get -> bool? +CheatEngine.Client.Memory.IMemoryReadContext.TryReadBytes(CheatEngine.SDK.Engine.Values.Address address, System.Span destination, out CheatEngine.Client.Results.CheatEngineFailure failure) -> bool +CheatEngine.Client.Memory.IMemoryWriteContext +CheatEngine.Client.Memory.IMemoryWriteContext.Bitness.get -> CheatEngine.SDK.Engine.Runtime.PointerSize +CheatEngine.Client.Memory.IMemoryWriteContext.ConfiguredPointerSize.get -> CheatEngine.SDK.Engine.Runtime.PointerSize +CheatEngine.Client.Memory.IMemoryWriteContext.ConfiguredPointerSizeBytes.get -> int? +CheatEngine.Client.Memory.IMemoryWriteContext.ConfiguredPointerSizeDiffersFromBitness.get -> bool? +CheatEngine.Client.Memory.IMemoryWriteContext.TryWriteBytes(CheatEngine.SDK.Engine.Values.Address address, System.ReadOnlySpan source, out CheatEngine.Client.Results.CheatEngineFailure failure) -> bool +CheatEngine.Client.Memory.MemoryAddressValue +CheatEngine.Client.Memory.MemoryAddressValue.Address.get -> CheatEngine.SDK.Engine.Values.Address +CheatEngine.Client.Memory.MemoryAddressValue.MemoryAddressValue() -> void +CheatEngine.Client.Memory.MemoryAddressValue.MemoryAddressValue(CheatEngine.SDK.Engine.Values.Address address, T value) -> void +CheatEngine.Client.Memory.MemoryAddressValue.Value.get -> T +CheatEngine.Client.Memory.MemoryBatchLimits +CheatEngine.Client.Memory.MemoryBatchWriteEffectState +CheatEngine.Client.Memory.MemoryBatchWriteEffectState.Completed = 3 -> CheatEngine.Client.Memory.MemoryBatchWriteEffectState +CheatEngine.Client.Memory.MemoryBatchWriteEffectState.NotStarted = 1 -> CheatEngine.Client.Memory.MemoryBatchWriteEffectState +CheatEngine.Client.Memory.MemoryBatchWriteEffectState.Partial = 2 -> CheatEngine.Client.Memory.MemoryBatchWriteEffectState +CheatEngine.Client.Memory.MemoryBatchWriteEffectState.Unknown = 0 -> CheatEngine.Client.Memory.MemoryBatchWriteEffectState +CheatEngine.Client.Memory.MemoryBytesReadOutcome +CheatEngine.Client.Memory.MemoryBytesReadOutcome.Bytes.get -> System.Collections.Immutable.ImmutableArray +CheatEngine.Client.Memory.MemoryBytesReadOutcome.ConfirmedLength.get -> int +CheatEngine.Client.Memory.MemoryBytesReadOutcome.Failure.get -> CheatEngine.Client.Results.CheatEngineFailure? +CheatEngine.Client.Memory.MemoryBytesReadOutcome.IsSuccess.get -> bool +CheatEngine.Client.Memory.MemoryBytesReadOutcome.MemoryBytesReadOutcome(int requestedLength, System.Collections.Immutable.ImmutableArray bytes, CheatEngine.Client.Results.CheatEngineFailure? failure) -> void +CheatEngine.Client.Memory.MemoryBytesReadOutcome.RequestedLength.get -> int +CheatEngine.Client.Memory.MemoryBytesReadRequest +CheatEngine.Client.Memory.MemoryBytesReadRequest.Address.get -> CheatEngine.SDK.Engine.Values.Address +CheatEngine.Client.Memory.MemoryBytesReadRequest.Equals(CheatEngine.Client.Memory.MemoryBytesReadRequest other) -> bool +CheatEngine.Client.Memory.MemoryBytesReadRequest.Length.get -> int +CheatEngine.Client.Memory.MemoryBytesReadRequest.MemoryBytesReadRequest() -> void +CheatEngine.Client.Memory.MemoryBytesReadRequest.MemoryBytesReadRequest(CheatEngine.SDK.Engine.Values.Address address, int length) -> void +CheatEngine.Client.Memory.MemoryBytesWriteRequest +CheatEngine.Client.Memory.MemoryBytesWriteRequest.Address.get -> CheatEngine.SDK.Engine.Values.Address +CheatEngine.Client.Memory.MemoryBytesWriteRequest.Bytes.get -> System.Collections.Immutable.ImmutableArray +CheatEngine.Client.Memory.MemoryBytesWriteRequest.MemoryBytesWriteRequest() -> void +CheatEngine.Client.Memory.MemoryBytesWriteRequest.MemoryBytesWriteRequest(CheatEngine.SDK.Engine.Values.Address address, System.ReadOnlySpan bytes) -> void +CheatEngine.Client.Memory.MemoryPrimitiveBatchReadOutcome +CheatEngine.Client.Memory.MemoryPrimitiveBatchReadOutcome.CompletedCount.get -> int +CheatEngine.Client.Memory.MemoryPrimitiveBatchReadOutcome.FailedIndex.get -> int? +CheatEngine.Client.Memory.MemoryPrimitiveBatchReadOutcome.Failure.get -> CheatEngine.Client.Results.CheatEngineFailure? +CheatEngine.Client.Memory.MemoryPrimitiveBatchReadOutcome.IsSuccess.get -> bool +CheatEngine.Client.Memory.MemoryPrimitiveBatchReadOutcome.MemoryPrimitiveBatchReadOutcome(int requestedCount, System.ReadOnlySpan values, int? failedIndex, CheatEngine.Client.Results.CheatEngineFailure? failure) -> void +CheatEngine.Client.Memory.MemoryPrimitiveBatchReadOutcome.RequestedCount.get -> int +CheatEngine.Client.Memory.MemoryPrimitiveBatchReadOutcome.Values.get -> System.Collections.Immutable.ImmutableArray +CheatEngine.Client.Memory.MemoryPrimitiveBatchReadRequest +CheatEngine.Client.Memory.MemoryPrimitiveBatchReadRequest.Addresses.get -> System.Collections.Immutable.ImmutableArray +CheatEngine.Client.Memory.MemoryPrimitiveBatchReadRequest.MemoryPrimitiveBatchReadRequest() -> void +CheatEngine.Client.Memory.MemoryPrimitiveBatchReadRequest.MemoryPrimitiveBatchReadRequest(System.ReadOnlySpan addresses) -> void +CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteOutcome +CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteOutcome.CompletedCount.get -> int +CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteOutcome.EffectState.get -> CheatEngine.Client.Memory.MemoryBatchWriteEffectState +CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteOutcome.FailedIndex.get -> int? +CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteOutcome.Failure.get -> CheatEngine.Client.Results.CheatEngineFailure? +CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteOutcome.IsSuccess.get -> bool +CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteOutcome.MemoryPrimitiveBatchWriteOutcome(int requestedCount, int completedCount, int? failedIndex, CheatEngine.Client.Results.CheatEngineFailure? failure, CheatEngine.Client.Memory.MemoryBatchWriteEffectState effectState) -> void +CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteOutcome.RequestedCount.get -> int +CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteRequest +CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteRequest.MemoryPrimitiveBatchWriteRequest() -> void +CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteRequest.MemoryPrimitiveBatchWriteRequest(System.ReadOnlySpan> values) -> void +CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteRequest.Values.get -> System.Collections.Immutable.ImmutableArray> +CheatEngine.Client.Memory.MemoryReadRequest +CheatEngine.Client.Memory.MemoryReadRequest.Address.get -> CheatEngine.SDK.Engine.Values.Address +CheatEngine.Client.Memory.MemoryReadRequest.Codec.get -> CheatEngine.Client.Memory.IMemoryCodec! +CheatEngine.Client.Memory.MemoryReadRequest.Equals(CheatEngine.Client.Memory.MemoryReadRequest other) -> bool +CheatEngine.Client.Memory.MemoryReadRequest.MemoryReadRequest() -> void +CheatEngine.Client.Memory.MemoryReadRequest.MemoryReadRequest(CheatEngine.SDK.Engine.Values.Address address, CheatEngine.Client.Memory.IMemoryCodec! codec) -> void +CheatEngine.Client.Memory.MemoryResourceLimits +CheatEngine.Client.Memory.MemoryResourceLimits.MaximumBatchOperationCount.get -> int +CheatEngine.Client.Memory.MemoryResourceLimits.MaximumBatchOperationCount.set -> void +CheatEngine.Client.Memory.MemoryResourceLimits.MaximumBatchPayloadBytes.get -> int +CheatEngine.Client.Memory.MemoryResourceLimits.MaximumBatchPayloadBytes.set -> void +CheatEngine.Client.Memory.MemoryResourceLimits.MaximumReadBytes.get -> int +CheatEngine.Client.Memory.MemoryResourceLimits.MaximumReadBytes.set -> void +CheatEngine.Client.Memory.MemoryResourceLimits.MaximumStringBytes.get -> int +CheatEngine.Client.Memory.MemoryResourceLimits.MaximumStringBytes.set -> void +CheatEngine.Client.Memory.MemoryResourceLimits.MaximumWriteBytes.get -> int +CheatEngine.Client.Memory.MemoryResourceLimits.MaximumWriteBytes.set -> void +CheatEngine.Client.Memory.MemoryResourceLimits.MemoryResourceLimits() -> void +CheatEngine.Client.Memory.MemoryResourceLimits.MemoryResourceLimits(int maximumReadBytes, int maximumWriteBytes, int maximumStringBytes, int maximumBatchPayloadBytes, int maximumBatchOperationCount) -> void +CheatEngine.Client.Memory.MemoryStringEncoding +CheatEngine.Client.Memory.MemoryStringEncoding.Utf16 = 1 -> CheatEngine.Client.Memory.MemoryStringEncoding +CheatEngine.Client.Memory.MemoryStringEncoding.Utf8 = 0 -> CheatEngine.Client.Memory.MemoryStringEncoding +CheatEngine.Client.Memory.MemoryStringReadRequest +CheatEngine.Client.Memory.MemoryStringReadRequest.Address.get -> CheatEngine.SDK.Engine.Values.Address +CheatEngine.Client.Memory.MemoryStringReadRequest.Encoding.get -> CheatEngine.Client.Memory.MemoryStringEncoding +CheatEngine.Client.Memory.MemoryStringReadRequest.Equals(CheatEngine.Client.Memory.MemoryStringReadRequest other) -> bool +CheatEngine.Client.Memory.MemoryStringReadRequest.MaximumLength.get -> int +CheatEngine.Client.Memory.MemoryStringReadRequest.MemoryStringReadRequest() -> void +CheatEngine.Client.Memory.MemoryStringReadRequest.MemoryStringReadRequest(CheatEngine.SDK.Engine.Values.Address address, int maximumLength, CheatEngine.Client.Memory.MemoryStringEncoding encoding) -> void +CheatEngine.Client.Memory.MemoryStringWriteRequest +CheatEngine.Client.Memory.MemoryStringWriteRequest.Address.get -> CheatEngine.SDK.Engine.Values.Address +CheatEngine.Client.Memory.MemoryStringWriteRequest.Encoding.get -> CheatEngine.Client.Memory.MemoryStringEncoding +CheatEngine.Client.Memory.MemoryStringWriteRequest.Equals(CheatEngine.Client.Memory.MemoryStringWriteRequest other) -> bool +CheatEngine.Client.Memory.MemoryStringWriteRequest.MaximumLength.get -> int +CheatEngine.Client.Memory.MemoryStringWriteRequest.MemoryStringWriteRequest() -> void +CheatEngine.Client.Memory.MemoryStringWriteRequest.MemoryStringWriteRequest(CheatEngine.SDK.Engine.Values.Address address, string! value, int maximumLength, CheatEngine.Client.Memory.MemoryStringEncoding encoding) -> void +CheatEngine.Client.Memory.MemoryStringWriteRequest.Value.get -> string! +CheatEngine.Client.Memory.MemoryWriteRequest +CheatEngine.Client.Memory.MemoryWriteRequest.Address.get -> CheatEngine.SDK.Engine.Values.Address +CheatEngine.Client.Memory.MemoryWriteRequest.Codec.get -> CheatEngine.Client.Memory.IMemoryCodec! +CheatEngine.Client.Memory.MemoryWriteRequest.Equals(CheatEngine.Client.Memory.MemoryWriteRequest other) -> bool +CheatEngine.Client.Memory.MemoryWriteRequest.MemoryWriteRequest() -> void +CheatEngine.Client.Memory.MemoryWriteRequest.MemoryWriteRequest(CheatEngine.SDK.Engine.Values.Address address, T value, CheatEngine.Client.Memory.IMemoryCodec! codec) -> void +CheatEngine.Client.Memory.MemoryWriteRequest.Value.get -> T +CheatEngine.Client.Memory.PointerChainRequest +CheatEngine.Client.Memory.PointerChainRequest.BaseAddress.get -> CheatEngine.SDK.Engine.Values.Address +CheatEngine.Client.Memory.PointerChainRequest.Offsets.get -> System.Collections.Immutable.ImmutableArray +CheatEngine.Client.Memory.PointerChainRequest.PointerChainRequest() -> void +CheatEngine.Client.Memory.PointerChainRequest.PointerChainRequest(CheatEngine.SDK.Engine.Values.Address baseAddress, System.ReadOnlySpan offsets) -> void +CheatEngine.Client.Modules.ICheatEngineClientModule +CheatEngine.Client.Modules.ICheatEngineClientModule.OnDisabling(CheatEngine.Client.ICheatEngineClient! client) -> void +CheatEngine.Client.Modules.ICheatEngineClientModule.OnEnabled(CheatEngine.Client.ICheatEngineClient! client) -> void +CheatEngine.Client.Processes.IProcessClient +CheatEngine.Client.Processes.IProcessClient.Attach(CheatEngine.SDK.Engine.Inspection.TargetProcessId processId, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Processes.ProcessSnapshot +CheatEngine.Client.Processes.IProcessClient.AttachExactName(string! processName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Processes.ProcessSnapshot +CheatEngine.Client.Processes.IProcessClient.GetCurrentProcess(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Processes.ProcessSnapshot +CheatEngine.Client.Processes.IProcessClient.GetLocalProcesses(CheatEngine.Client.Processes.LocalProcessEnumerationRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Processes.LocalProcessEnumerationResult +CheatEngine.Client.Processes.IProcessClient.Refresh(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Processes.ProcessSnapshot +CheatEngine.Client.Processes.IProcessClient.TryAttach(CheatEngine.SDK.Engine.Inspection.TargetProcessId processId, out CheatEngine.Client.Processes.ProcessSnapshot snapshot, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Processes.IProcessClient.TryAttachExactName(string! processName, out CheatEngine.Client.Processes.ProcessSnapshot snapshot, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Processes.IProcessClient.TryGetCurrentProcess(out CheatEngine.Client.Processes.ProcessSnapshot snapshot, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Processes.IProcessClient.TryGetLocalProcesses(CheatEngine.Client.Processes.LocalProcessEnumerationRequest request, out CheatEngine.Client.Processes.LocalProcessEnumerationResult result, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Processes.IProcessClient.TryRefresh(out CheatEngine.Client.Processes.ProcessSnapshot snapshot, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Processes.LocalProcessEnumerationRequest +CheatEngine.Client.Processes.LocalProcessEnumerationRequest.Equals(CheatEngine.Client.Processes.LocalProcessEnumerationRequest other) -> bool +CheatEngine.Client.Processes.LocalProcessEnumerationRequest.LocalProcessEnumerationRequest() -> void +CheatEngine.Client.Processes.LocalProcessEnumerationRequest.LocalProcessEnumerationRequest(int maximumResults, string? nameContains = null) -> void +CheatEngine.Client.Processes.LocalProcessEnumerationRequest.MaximumResults.get -> int +CheatEngine.Client.Processes.LocalProcessEnumerationRequest.NameContains.get -> string? +CheatEngine.Client.Processes.LocalProcessEnumerationResult +CheatEngine.Client.Processes.LocalProcessEnumerationResult.IsTruncated.get -> bool +CheatEngine.Client.Processes.LocalProcessEnumerationResult.LocalProcessEnumerationResult() -> void +CheatEngine.Client.Processes.LocalProcessEnumerationResult.LocalProcessEnumerationResult(System.Collections.Immutable.ImmutableArray processes, bool isTruncated) -> void +CheatEngine.Client.Processes.LocalProcessEnumerationResult.Processes.get -> System.Collections.Immutable.ImmutableArray +CheatEngine.Client.Processes.LocalProcessId +CheatEngine.Client.Processes.LocalProcessId.Equals(CheatEngine.Client.Processes.LocalProcessId other) -> bool +CheatEngine.Client.Processes.LocalProcessId.LocalProcessId() -> void +CheatEngine.Client.Processes.LocalProcessId.LocalProcessId(int value) -> void +CheatEngine.Client.Processes.LocalProcessId.Value.get -> int +CheatEngine.Client.Processes.LocalProcessSnapshot +CheatEngine.Client.Processes.LocalProcessSnapshot.Equals(CheatEngine.Client.Processes.LocalProcessSnapshot other) -> bool +CheatEngine.Client.Processes.LocalProcessSnapshot.ExecutablePath.get -> string? +CheatEngine.Client.Processes.LocalProcessSnapshot.Id.get -> CheatEngine.Client.Processes.LocalProcessId +CheatEngine.Client.Processes.LocalProcessSnapshot.LocalProcessSnapshot() -> void +CheatEngine.Client.Processes.LocalProcessSnapshot.LocalProcessSnapshot(CheatEngine.Client.Processes.LocalProcessId id, string? name, string? executablePath) -> void +CheatEngine.Client.Processes.LocalProcessSnapshot.Name.get -> string? +CheatEngine.Client.Processes.ProcessSnapshot +CheatEngine.Client.Processes.ProcessSnapshot.Architecture.get -> CheatEngine.SDK.Engine.Runtime.CheatEngineArchitecture +CheatEngine.Client.Processes.ProcessSnapshot.Backend.get -> CheatEngine.SDK.Engine.Runtime.TargetBackend +CheatEngine.Client.Processes.ProcessSnapshot.Bitness.get -> CheatEngine.SDK.Engine.Runtime.PointerSize +CheatEngine.Client.Processes.ProcessSnapshot.ConfiguredPointerSize.get -> CheatEngine.SDK.Engine.Runtime.PointerSize +CheatEngine.Client.Processes.ProcessSnapshot.ConfiguredPointerSizeBytes.get -> int? +CheatEngine.Client.Processes.ProcessSnapshot.ConfiguredPointerSizeDiffersFromBitness.get -> bool? +CheatEngine.Client.Processes.ProcessSnapshot.Equals(CheatEngine.Client.Processes.ProcessSnapshot other) -> bool +CheatEngine.Client.Processes.ProcessSnapshot.ExecutablePath.get -> string? +CheatEngine.Client.Processes.ProcessSnapshot.Id.get -> CheatEngine.SDK.Engine.Inspection.TargetProcessId +CheatEngine.Client.Processes.ProcessSnapshot.Name.get -> string? +CheatEngine.Client.Processes.ProcessSnapshot.ProcessSnapshot() -> void +CheatEngine.Client.Processes.ProcessSnapshot.ProcessSnapshot(CheatEngine.SDK.Engine.Inspection.TargetProcessId id, string? name, string? executablePath, CheatEngine.SDK.Engine.Runtime.TargetBackend backend, CheatEngine.SDK.Engine.Runtime.CheatEngineArchitecture architecture, CheatEngine.SDK.Engine.Runtime.PointerSize bitness, int? configuredPointerSizeBytes, System.DateTimeOffset? startTimeUtc, long selectionEpoch) -> void +CheatEngine.Client.Processes.ProcessSnapshot.SelectionEpoch.get -> long +CheatEngine.Client.Processes.ProcessSnapshot.StartTimeUtc.get -> System.DateTimeOffset? +CheatEngine.Client.Results.CheatEngineActivationExpiredException +CheatEngine.Client.Results.CheatEngineClientException +CheatEngine.Client.Results.CheatEngineClientException.Failure.get -> CheatEngine.Client.Results.CheatEngineFailure +CheatEngine.Client.Results.CheatEngineFailure +CheatEngine.Client.Results.CheatEngineFailure.CheatEngineFailure() -> void +CheatEngine.Client.Results.CheatEngineFailure.CheatEngineFailure(CheatEngine.Client.Results.CheatEngineFailureKind kind, string! operation, string! message, System.Exception? exception = null, CheatEngine.Client.Results.CheatEngineHostEffect hostEffect = CheatEngine.Client.Results.CheatEngineHostEffect.Unknown) -> void +CheatEngine.Client.Results.CheatEngineFailure.Equals(CheatEngine.Client.Results.CheatEngineFailure other) -> bool +CheatEngine.Client.Results.CheatEngineFailure.Exception.get -> System.Exception? +CheatEngine.Client.Results.CheatEngineFailure.HostEffect.get -> CheatEngine.Client.Results.CheatEngineHostEffect +CheatEngine.Client.Results.CheatEngineFailure.IsDefault.get -> bool +CheatEngine.Client.Results.CheatEngineFailure.Kind.get -> CheatEngine.Client.Results.CheatEngineFailureKind +CheatEngine.Client.Results.CheatEngineFailure.Message.get -> string! +CheatEngine.Client.Results.CheatEngineFailure.Operation.get -> string! +CheatEngine.Client.Results.CheatEngineFailure.Throw(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void +CheatEngine.Client.Results.CheatEngineFailure.ToException(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Exception! +CheatEngine.Client.Results.CheatEngineFailureKind +CheatEngine.Client.Results.CheatEngineFailureKind.ActivationExpired = 14 -> CheatEngine.Client.Results.CheatEngineFailureKind +CheatEngine.Client.Results.CheatEngineFailureKind.AmbiguousMatch = 5 -> CheatEngine.Client.Results.CheatEngineFailureKind +CheatEngine.Client.Results.CheatEngineFailureKind.BindingError = 8 -> CheatEngine.Client.Results.CheatEngineFailureKind +CheatEngine.Client.Results.CheatEngineFailureKind.Cancelled = 1 -> CheatEngine.Client.Results.CheatEngineFailureKind +CheatEngine.Client.Results.CheatEngineFailureKind.CapabilityUnavailable = 2 -> CheatEngine.Client.Results.CheatEngineFailureKind +CheatEngine.Client.Results.CheatEngineFailureKind.IndeterminateHostResult = 16 -> CheatEngine.Client.Results.CheatEngineFailureKind +CheatEngine.Client.Results.CheatEngineFailureKind.InvalidHostResult = 9 -> CheatEngine.Client.Results.CheatEngineFailureKind +CheatEngine.Client.Results.CheatEngineFailureKind.InvalidState = 15 -> CheatEngine.Client.Results.CheatEngineFailureKind +CheatEngine.Client.Results.CheatEngineFailureKind.LuaError = 7 -> CheatEngine.Client.Results.CheatEngineFailureKind +CheatEngine.Client.Results.CheatEngineFailureKind.MemoryReadFailed = 12 -> CheatEngine.Client.Results.CheatEngineFailureKind +CheatEngine.Client.Results.CheatEngineFailureKind.MemoryWriteFailed = 13 -> CheatEngine.Client.Results.CheatEngineFailureKind +CheatEngine.Client.Results.CheatEngineFailureKind.NotFound = 4 -> CheatEngine.Client.Results.CheatEngineFailureKind +CheatEngine.Client.Results.CheatEngineFailureKind.OperationRejected = 3 -> CheatEngine.Client.Results.CheatEngineFailureKind +CheatEngine.Client.Results.CheatEngineFailureKind.ResultLimitExceeded = 6 -> CheatEngine.Client.Results.CheatEngineFailureKind +CheatEngine.Client.Results.CheatEngineFailureKind.RuntimeChanged = 19 -> CheatEngine.Client.Results.CheatEngineFailureKind +CheatEngine.Client.Results.CheatEngineFailureKind.TargetChanged = 17 -> CheatEngine.Client.Results.CheatEngineFailureKind +CheatEngine.Client.Results.CheatEngineFailureKind.TargetIdentityUnavailable = 18 -> CheatEngine.Client.Results.CheatEngineFailureKind +CheatEngine.Client.Results.CheatEngineFailureKind.TargetNotAttached = 11 -> CheatEngine.Client.Results.CheatEngineFailureKind +CheatEngine.Client.Results.CheatEngineFailureKind.Unknown = 0 -> CheatEngine.Client.Results.CheatEngineFailureKind +CheatEngine.Client.Results.CheatEngineFailureKind.Unsupported = 10 -> CheatEngine.Client.Results.CheatEngineFailureKind +CheatEngine.Client.Results.CheatEngineHostEffect +CheatEngine.Client.Results.CheatEngineHostEffect.CleanupUnconfirmed = 4 -> CheatEngine.Client.Results.CheatEngineHostEffect +CheatEngine.Client.Results.CheatEngineHostEffect.Completed = 3 -> CheatEngine.Client.Results.CheatEngineHostEffect +CheatEngine.Client.Results.CheatEngineHostEffect.NotApplied = 5 -> CheatEngine.Client.Results.CheatEngineHostEffect +CheatEngine.Client.Results.CheatEngineHostEffect.NotStarted = 1 -> CheatEngine.Client.Results.CheatEngineHostEffect +CheatEngine.Client.Results.CheatEngineHostEffect.Started = 2 -> CheatEngine.Client.Results.CheatEngineHostEffect +CheatEngine.Client.Results.CheatEngineHostEffect.Unknown = 0 -> CheatEngine.Client.Results.CheatEngineHostEffect +CheatEngine.Client.Results.CheatEngineInvalidStateException +CheatEngine.Client.Results.CheatEngineOperationCanceledException +CheatEngine.Client.Results.CheatEngineOperationCanceledException.Failure.get -> CheatEngine.Client.Results.CheatEngineFailure +CheatEngine.Client.Results.CheatEngineOperationException +CheatEngine.Client.Results.LeaseReleaseKind +CheatEngine.Client.Results.LeaseReleaseKind.AlreadyReleased = 2 -> CheatEngine.Client.Results.LeaseReleaseKind +CheatEngine.Client.Results.LeaseReleaseKind.CleanupUnavailable = 12 -> CheatEngine.Client.Results.LeaseReleaseKind +CheatEngine.Client.Results.LeaseReleaseKind.CleanupUnconfirmed = 11 -> CheatEngine.Client.Results.LeaseReleaseKind +CheatEngine.Client.Results.LeaseReleaseKind.ExternallyRemoved = 6 -> CheatEngine.Client.Results.LeaseReleaseKind +CheatEngine.Client.Results.LeaseReleaseKind.PartiallyReleased = 3 -> CheatEngine.Client.Results.LeaseReleaseKind +CheatEngine.Client.Results.LeaseReleaseKind.RefusedRuntimeChanged = 10 -> CheatEngine.Client.Results.LeaseReleaseKind +CheatEngine.Client.Results.LeaseReleaseKind.RefusedTargetChanged = 8 -> CheatEngine.Client.Results.LeaseReleaseKind +CheatEngine.Client.Results.LeaseReleaseKind.RefusedTargetIdentityUnavailable = 9 -> CheatEngine.Client.Results.LeaseReleaseKind +CheatEngine.Client.Results.LeaseReleaseKind.RefusedTargetNotAttached = 7 -> CheatEngine.Client.Results.LeaseReleaseKind +CheatEngine.Client.Results.LeaseReleaseKind.Released = 1 -> CheatEngine.Client.Results.LeaseReleaseKind +CheatEngine.Client.Results.LeaseReleaseKind.Replaced = 4 -> CheatEngine.Client.Results.LeaseReleaseKind +CheatEngine.Client.Results.LeaseReleaseKind.Superseded = 5 -> CheatEngine.Client.Results.LeaseReleaseKind +CheatEngine.Client.Results.LeaseReleaseKind.Unknown = 0 -> CheatEngine.Client.Results.LeaseReleaseKind +CheatEngine.Client.Results.LeaseReleaseOutcome +CheatEngine.Client.Results.LeaseReleaseOutcome.Equals(CheatEngine.Client.Results.LeaseReleaseOutcome other) -> bool +CheatEngine.Client.Results.LeaseReleaseOutcome.HostEffect.get -> CheatEngine.Client.Results.CheatEngineHostEffect +CheatEngine.Client.Results.LeaseReleaseOutcome.IsComplete.get -> bool +CheatEngine.Client.Results.LeaseReleaseOutcome.IsRetryable.get -> bool +CheatEngine.Client.Results.LeaseReleaseOutcome.Kind.get -> CheatEngine.Client.Results.LeaseReleaseKind +CheatEngine.Client.Results.LeaseReleaseOutcome.LeaseReleaseOutcome() -> void +CheatEngine.Client.Results.LeaseReleaseOutcome.LeaseReleaseOutcome(CheatEngine.Client.Results.LeaseReleaseKind kind, CheatEngine.Client.Results.CheatEngineHostEffect hostEffect) -> void +CheatEngine.Client.Results.LeaseReleaseOutcome.RequiresManualRecovery.get -> bool +CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo +CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.CheatEngineBitness.get -> CheatEngine.SDK.Engine.Runtime.PointerSize +CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.CheatEngineRuntimePlatformInfo() -> void +CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.CheatEngineRuntimePlatformInfo(CheatEngine.SDK.Engine.Runtime.CheatEngineOperatingSystem hostOperatingSystem, CheatEngine.SDK.Engine.Runtime.CheatEngineArchitecture hostArchitecture, CheatEngine.SDK.Engine.Runtime.PointerSize cheatEngineBitness, CheatEngine.SDK.Engine.Runtime.TargetBackend targetBackend, CheatEngine.SDK.Engine.Runtime.CheatEngineArchitecture targetArchitecture, CheatEngine.SDK.Engine.Runtime.PointerSize targetBitness, CheatEngine.SDK.Engine.Runtime.TargetAbi targetAbi, bool? targetIsAndroid, int? configuredPointerSizeBytes) -> void +CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.ConfiguredPointerSize.get -> CheatEngine.SDK.Engine.Runtime.PointerSize +CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.ConfiguredPointerSizeBytes.get -> int? +CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.ConfiguredPointerSizeDiffersFromBitness.get -> bool? +CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.Equals(CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo other) -> bool +CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.HostArchitecture.get -> CheatEngine.SDK.Engine.Runtime.CheatEngineArchitecture +CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.HostOperatingSystem.get -> CheatEngine.SDK.Engine.Runtime.CheatEngineOperatingSystem +CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.TargetAbi.get -> CheatEngine.SDK.Engine.Runtime.TargetAbi +CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.TargetArchitecture.get -> CheatEngine.SDK.Engine.Runtime.CheatEngineArchitecture +CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.TargetBackend.get -> CheatEngine.SDK.Engine.Runtime.TargetBackend +CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.TargetBitness.get -> CheatEngine.SDK.Engine.Runtime.PointerSize +CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.TargetIsAndroid.get -> bool? +CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot +CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot.Capabilities.get -> CheatEngine.Client.Runtime.ClientCapabilities! +CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot.CheatEngineRuntimeSnapshot() -> void +CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot.CheatEngineRuntimeSnapshot(long epoch, CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo version, CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo platform, CheatEngine.Client.Runtime.ClientCapabilities! capabilities) -> void +CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot.Epoch.get -> long +CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot.Equals(CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot other) -> bool +CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot.Platform.get -> CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo +CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot.Version.get -> CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo +CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo +CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.CheatEngineRuntimeVersionInfo() -> void +CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.CheatEngineRuntimeVersionInfo(CheatEngine.SDK.Engine.Runtime.CheatEngineVersion? cheatEngineVersion, CheatEngine.SDK.Engine.Runtime.CheatEngineVersion qualifiedCheatEngineBaseline, System.Version! clientAssemblyVersion, System.Version! sdkAssemblyVersion, string? sdkPackageVersion, bool isReviewedSdkPackage) -> void +CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.CheatEngineVersion.get -> CheatEngine.SDK.Engine.Runtime.CheatEngineVersion? +CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.ClientAssemblyVersion.get -> System.Version! +CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.Equals(CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo other) -> bool +CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.IsOnQualifiedCheatEngineLine.get -> bool +CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.IsReviewedSdkPackage.get -> bool +CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.QualifiedCheatEngineBaseline.get -> CheatEngine.SDK.Engine.Runtime.CheatEngineVersion +CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.SdkAssemblyVersion.get -> System.Version! +CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.SdkPackageVersion.get -> string? +CheatEngine.Client.Runtime.ClientCapabilities +CheatEngine.Client.Runtime.ClientCapabilities.Count.get -> int +CheatEngine.Client.Runtime.ClientCapabilities.Entries.get -> System.ReadOnlySpan +CheatEngine.Client.Runtime.ClientCapabilities.Equals(CheatEngine.Client.Runtime.ClientCapabilities? other) -> bool +CheatEngine.Client.Runtime.ClientCapabilities.TryGet(CheatEngine.Client.Runtime.ClientCapabilityId capability, out CheatEngine.Client.Runtime.ClientCapabilityAvailability availability) -> bool +CheatEngine.Client.Runtime.ClientCapabilityAvailability +CheatEngine.Client.Runtime.ClientCapabilityAvailability.Capability.get -> CheatEngine.Client.Runtime.ClientCapabilityId +CheatEngine.Client.Runtime.ClientCapabilityAvailability.ClientCapabilityAvailability() -> void +CheatEngine.Client.Runtime.ClientCapabilityAvailability.ClientCapabilityAvailability(CheatEngine.Client.Runtime.ClientCapabilityId capability, CheatEngine.Client.Runtime.ClientCapabilityEvidence evidence) -> void +CheatEngine.Client.Runtime.ClientCapabilityAvailability.Equals(CheatEngine.Client.Runtime.ClientCapabilityAvailability other) -> bool +CheatEngine.Client.Runtime.ClientCapabilityAvailability.Evidence.get -> CheatEngine.Client.Runtime.ClientCapabilityEvidence +CheatEngine.Client.Runtime.ClientCapabilityAvailability.IsAvailable.get -> bool +CheatEngine.Client.Runtime.ClientCapabilityAvailability.IsKnown.get -> bool +CheatEngine.Client.Runtime.ClientCapabilityAvailability.Reason.get -> string! +CheatEngine.Client.Runtime.ClientCapabilityAvailability.State.get -> CheatEngine.Client.Runtime.ClientCapabilityAvailabilityState +CheatEngine.Client.Runtime.ClientCapabilityAvailabilityState +CheatEngine.Client.Runtime.ClientCapabilityAvailabilityState.Available = 1 -> CheatEngine.Client.Runtime.ClientCapabilityAvailabilityState +CheatEngine.Client.Runtime.ClientCapabilityAvailabilityState.Unavailable = 2 -> CheatEngine.Client.Runtime.ClientCapabilityAvailabilityState +CheatEngine.Client.Runtime.ClientCapabilityAvailabilityState.Unknown = 0 -> CheatEngine.Client.Runtime.ClientCapabilityAvailabilityState +CheatEngine.Client.Runtime.ClientCapabilityEvidence +CheatEngine.Client.Runtime.ClientCapabilityEvidence.AvailabilityState.get -> CheatEngine.Client.Runtime.ClientCapabilityAvailabilityState +CheatEngine.Client.Runtime.ClientCapabilityEvidence.ClientCapabilityEvidence() -> void +CheatEngine.Client.Runtime.ClientCapabilityEvidence.ClientCapabilityEvidence(CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate implementation, CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate package, CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate host, CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate liveQualification, CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate policy, CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate lifetime) -> void +CheatEngine.Client.Runtime.ClientCapabilityEvidence.EffectiveReason.get -> string! +CheatEngine.Client.Runtime.ClientCapabilityEvidence.EffectiveReasonCode.get -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode +CheatEngine.Client.Runtime.ClientCapabilityEvidence.Equals(CheatEngine.Client.Runtime.ClientCapabilityEvidence other) -> bool +CheatEngine.Client.Runtime.ClientCapabilityEvidence.Host.get -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate +CheatEngine.Client.Runtime.ClientCapabilityEvidence.Implementation.get -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate +CheatEngine.Client.Runtime.ClientCapabilityEvidence.Lifetime.get -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate +CheatEngine.Client.Runtime.ClientCapabilityEvidence.LiveQualification.get -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate +CheatEngine.Client.Runtime.ClientCapabilityEvidence.Package.get -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate +CheatEngine.Client.Runtime.ClientCapabilityEvidence.Policy.get -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate +CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate +CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate.ClientCapabilityEvidenceGate() -> void +CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate.ClientCapabilityEvidenceGate(CheatEngine.Client.Runtime.ClientCapabilityEvidenceState state, string! reason) -> void +CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate.Equals(CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate other) -> bool +CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate.IsSatisfied.get -> bool +CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate.Reason.get -> string! +CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate.State.get -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceState +CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode +CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode.Host = 3 -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode +CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode.Implementation = 1 -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode +CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode.Lifetime = 6 -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode +CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode.LiveQualification = 4 -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode +CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode.Package = 2 -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode +CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode.Policy = 5 -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode +CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode.Unknown = 0 -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode +CheatEngine.Client.Runtime.ClientCapabilityEvidenceState +CheatEngine.Client.Runtime.ClientCapabilityEvidenceState.Faulted = 3 -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceState +CheatEngine.Client.Runtime.ClientCapabilityEvidenceState.Malformed = 4 -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceState +CheatEngine.Client.Runtime.ClientCapabilityEvidenceState.Missing = 2 -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceState +CheatEngine.Client.Runtime.ClientCapabilityEvidenceState.Satisfied = 1 -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceState +CheatEngine.Client.Runtime.ClientCapabilityEvidenceState.Unknown = 0 -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceState +CheatEngine.Client.Runtime.ClientCapabilityId +CheatEngine.Client.Runtime.ClientCapabilityId.ClientCapabilityId() -> void +CheatEngine.Client.Runtime.ClientCapabilityId.ClientCapabilityId(string! value) -> void +CheatEngine.Client.Runtime.ClientCapabilityId.Equals(CheatEngine.Client.Runtime.ClientCapabilityId other) -> bool +CheatEngine.Client.Runtime.ClientCapabilityId.IsEmpty.get -> bool +CheatEngine.Client.Runtime.ClientCapabilityId.Value.get -> string! +CheatEngine.Client.Runtime.ICheatEngineRuntime +CheatEngine.Client.Runtime.ICheatEngineRuntime.Epoch.get -> long +CheatEngine.Client.Runtime.ICheatEngineRuntime.GetClientCapability(CheatEngine.Client.Runtime.ClientCapabilityId capability, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Runtime.ClientCapabilityAvailability +CheatEngine.Client.Runtime.ICheatEngineRuntime.GetSnapshot(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot +CheatEngine.Client.Runtime.ICheatEngineRuntime.TryGetClientCapability(CheatEngine.Client.Runtime.ClientCapabilityId capability, out CheatEngine.Client.Runtime.ClientCapabilityAvailability availability, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Runtime.ICheatEngineRuntime.TryGetSnapshot(out CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot snapshot, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Scanning.AobPattern +CheatEngine.Client.Scanning.AobPattern.AobPattern() -> void +CheatEngine.Client.Scanning.AobPattern.AobPattern(string! value) -> void +CheatEngine.Client.Scanning.AobPattern.ByteLength.get -> int +CheatEngine.Client.Scanning.AobPattern.Equals(CheatEngine.Client.Scanning.AobPattern other) -> bool +CheatEngine.Client.Scanning.AobPattern.IsWildcardOnly.get -> bool +CheatEngine.Client.Scanning.AobPattern.Value.get -> string! +CheatEngine.Client.Scanning.AobScanRange +CheatEngine.Client.Scanning.AobScanRange.AobScanRange() -> void +CheatEngine.Client.Scanning.AobScanRange.AobScanRange(CheatEngine.SDK.Engine.Values.Address start, CheatEngine.SDK.Engine.Values.Address end) -> void +CheatEngine.Client.Scanning.AobScanRange.Contains(CheatEngine.SDK.Engine.Values.Address address) -> bool +CheatEngine.Client.Scanning.AobScanRange.End.get -> CheatEngine.SDK.Engine.Values.Address +CheatEngine.Client.Scanning.AobScanRange.Equals(CheatEngine.Client.Scanning.AobScanRange other) -> bool +CheatEngine.Client.Scanning.AobScanRange.Start.get -> CheatEngine.SDK.Engine.Values.Address +CheatEngine.Client.Scanning.AobScanRequest +CheatEngine.Client.Scanning.AobScanRequest.Alignment.get -> CheatEngine.Client.Scanning.ScanAlignment +CheatEngine.Client.Scanning.AobScanRequest.AobScanRequest() -> void +CheatEngine.Client.Scanning.AobScanRequest.AobScanRequest(CheatEngine.Client.Scanning.AobPattern pattern, int maximumResults, CheatEngine.SDK.Engine.Inspection.ModuleName? module = null, CheatEngine.Client.Scanning.AobScanRange? range = null, CheatEngine.Client.Scanning.ScanProtectionFilter protection = default(CheatEngine.Client.Scanning.ScanProtectionFilter), CheatEngine.Client.Scanning.ScanAlignment alignment = default(CheatEngine.Client.Scanning.ScanAlignment)) -> void +CheatEngine.Client.Scanning.AobScanRequest.Equals(CheatEngine.Client.Scanning.AobScanRequest other) -> bool +CheatEngine.Client.Scanning.AobScanRequest.MaximumResults.get -> int +CheatEngine.Client.Scanning.AobScanRequest.Module.get -> CheatEngine.SDK.Engine.Inspection.ModuleName? +CheatEngine.Client.Scanning.AobScanRequest.Pattern.get -> CheatEngine.Client.Scanning.AobPattern +CheatEngine.Client.Scanning.AobScanRequest.Protection.get -> CheatEngine.Client.Scanning.ScanProtectionFilter +CheatEngine.Client.Scanning.AobScanRequest.Range.get -> CheatEngine.Client.Scanning.AobScanRange? +CheatEngine.Client.Scanning.AobScanResult +CheatEngine.Client.Scanning.AobScanResult.AobScanResult() -> void +CheatEngine.Client.Scanning.AobScanResult.AobScanResult(System.Collections.Immutable.ImmutableArray matches, bool isTruncated) -> void +CheatEngine.Client.Scanning.AobScanResult.IsTruncated.get -> bool +CheatEngine.Client.Scanning.AobScanResult.Matches.get -> System.Collections.Immutable.ImmutableArray +CheatEngine.Client.Scanning.IPatternScanner +CheatEngine.Client.Scanning.IPatternScanner.Scan(CheatEngine.Client.Scanning.AobScanRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Scanning.AobScanResult +CheatEngine.Client.Scanning.IPatternScanner.ScanDetailed(CheatEngine.Client.Scanning.AobScanRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Scanning.PatternScanOutcome! +CheatEngine.Client.Scanning.IPatternScanner.TryScan(CheatEngine.Client.Scanning.AobScanRequest request, out CheatEngine.Client.Scanning.AobScanResult result, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Scanning.PatternScanHostOutcomeKind +CheatEngine.Client.Scanning.PatternScanHostOutcomeKind.Cancelled = 12 -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind +CheatEngine.Client.Scanning.PatternScanHostOutcomeKind.GlobalUnavailable = 4 -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind +CheatEngine.Client.Scanning.PatternScanHostOutcomeKind.HostReportedError = 8 -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind +CheatEngine.Client.Scanning.PatternScanHostOutcomeKind.InvalidResult = 6 -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind +CheatEngine.Client.Scanning.PatternScanHostOutcomeKind.Matches = 1 -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind +CheatEngine.Client.Scanning.PatternScanHostOutcomeKind.NoMatches = 2 -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind +CheatEngine.Client.Scanning.PatternScanHostOutcomeKind.NoResult = 3 -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind +CheatEngine.Client.Scanning.PatternScanHostOutcomeKind.ProtectedLuaFailure = 5 -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind +CheatEngine.Client.Scanning.PatternScanHostOutcomeKind.ResultListCountUnavailable = 7 -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind +CheatEngine.Client.Scanning.PatternScanHostOutcomeKind.RuntimeChanged = 11 -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind +CheatEngine.Client.Scanning.PatternScanHostOutcomeKind.TargetChanged = 9 -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind +CheatEngine.Client.Scanning.PatternScanHostOutcomeKind.TargetIdentityUnavailable = 10 -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind +CheatEngine.Client.Scanning.PatternScanHostOutcomeKind.Unknown = 0 -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind +CheatEngine.Client.Scanning.PatternScanMetrics +CheatEngine.Client.Scanning.PatternScanMetrics.AtOrAfterStopSkippedCount.get -> ulong +CheatEngine.Client.Scanning.PatternScanMetrics.BelowStartSkippedCount.get -> ulong +CheatEngine.Client.Scanning.PatternScanMetrics.Equals(CheatEngine.Client.Scanning.PatternScanMetrics other) -> bool +CheatEngine.Client.Scanning.PatternScanMetrics.ExaminedCount.get -> ulong +CheatEngine.Client.Scanning.PatternScanMetrics.FilteredOutCount.get -> ulong +CheatEngine.Client.Scanning.PatternScanMetrics.HostResultCount.get -> ulong +CheatEngine.Client.Scanning.PatternScanMetrics.HostScanElapsed.get -> System.TimeSpan +CheatEngine.Client.Scanning.PatternScanMetrics.InBoundsCountIsExact.get -> bool +CheatEngine.Client.Scanning.PatternScanMetrics.MaterializationElapsed.get -> System.TimeSpan +CheatEngine.Client.Scanning.PatternScanMetrics.MaterializedCount.get -> int +CheatEngine.Client.Scanning.PatternScanMetrics.PatternScanMetrics() -> void +CheatEngine.Client.Scanning.PatternScanMetrics.PatternScanMetrics(CheatEngine.Client.Scanning.PatternScanScope scope, ulong hostResultCount, ulong examinedCount, ulong filteredOutCount, int materializedCount, ulong belowStartSkippedCount, ulong atOrAfterStopSkippedCount, ulong unreadHostRowCount, bool inBoundsCountIsExact, System.TimeSpan hostScanElapsed, System.TimeSpan materializationElapsed) -> void +CheatEngine.Client.Scanning.PatternScanMetrics.Scope.get -> CheatEngine.Client.Scanning.PatternScanScope +CheatEngine.Client.Scanning.PatternScanMetrics.UnreadHostRowCount.get -> ulong +CheatEngine.Client.Scanning.PatternScanOutcome +CheatEngine.Client.Scanning.PatternScanOutcome.Failure.get -> CheatEngine.Client.Results.CheatEngineFailure? +CheatEngine.Client.Scanning.PatternScanOutcome.HostOutcome.get -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind +CheatEngine.Client.Scanning.PatternScanOutcome.IsSuccess.get -> bool +CheatEngine.Client.Scanning.PatternScanOutcome.Metrics.get -> CheatEngine.Client.Scanning.PatternScanMetrics? +CheatEngine.Client.Scanning.PatternScanOutcome.PatternScanOutcome(CheatEngine.Client.Scanning.AobScanResult? result, CheatEngine.Client.Results.CheatEngineFailure? failure, CheatEngine.Client.Scanning.PatternScanMetrics? metrics, CheatEngine.Client.Scanning.PatternScanHostOutcomeKind hostOutcome, CheatEngine.Client.Scanning.PatternScanRouteReason routeReason, bool targetIdentityVerified) -> void +CheatEngine.Client.Scanning.PatternScanOutcome.Result.get -> CheatEngine.Client.Scanning.AobScanResult? +CheatEngine.Client.Scanning.PatternScanOutcome.RouteReason.get -> CheatEngine.Client.Scanning.PatternScanRouteReason +CheatEngine.Client.Scanning.PatternScanOutcome.TargetIdentityVerified.get -> bool +CheatEngine.Client.Scanning.PatternScanRouteReason +CheatEngine.Client.Scanning.PatternScanRouteReason.ScopedRequestOnQualifiedTarget = 2 -> CheatEngine.Client.Scanning.PatternScanRouteReason +CheatEngine.Client.Scanning.PatternScanRouteReason.TargetIdentityNotQualified = 3 -> CheatEngine.Client.Scanning.PatternScanRouteReason +CheatEngine.Client.Scanning.PatternScanRouteReason.Unknown = 0 -> CheatEngine.Client.Scanning.PatternScanRouteReason +CheatEngine.Client.Scanning.PatternScanRouteReason.UnscopedRequest = 1 -> CheatEngine.Client.Scanning.PatternScanRouteReason +CheatEngine.Client.Scanning.PatternScanScope +CheatEngine.Client.Scanning.PatternScanScope.GlobalHostScan = 1 -> CheatEngine.Client.Scanning.PatternScanScope +CheatEngine.Client.Scanning.PatternScanScope.GlobalHostScanWithManagedFilter = 3 -> CheatEngine.Client.Scanning.PatternScanScope +CheatEngine.Client.Scanning.PatternScanScope.HostBoundedRange = 2 -> CheatEngine.Client.Scanning.PatternScanScope +CheatEngine.Client.Scanning.PatternScanScope.Unknown = 0 -> CheatEngine.Client.Scanning.PatternScanScope +CheatEngine.Client.Scanning.ScanAlignment +CheatEngine.Client.Scanning.ScanAlignment.Digits.get -> string? +CheatEngine.Client.Scanning.ScanAlignment.Divisor.get -> int +CheatEngine.Client.Scanning.ScanAlignment.Equals(CheatEngine.Client.Scanning.ScanAlignment other) -> bool +CheatEngine.Client.Scanning.ScanAlignment.Mode.get -> CheatEngine.Client.Scanning.ScanAlignmentMode +CheatEngine.Client.Scanning.ScanAlignment.ScanAlignment() -> void +CheatEngine.Client.Scanning.ScanAlignmentMode +CheatEngine.Client.Scanning.ScanAlignmentMode.AlignedTo = 1 -> CheatEngine.Client.Scanning.ScanAlignmentMode +CheatEngine.Client.Scanning.ScanAlignmentMode.LastDigits = 2 -> CheatEngine.Client.Scanning.ScanAlignmentMode +CheatEngine.Client.Scanning.ScanAlignmentMode.None = 0 -> CheatEngine.Client.Scanning.ScanAlignmentMode +CheatEngine.Client.Scanning.ScanProtectionFilter +CheatEngine.Client.Scanning.ScanProtectionFilter.CopyOnWrite.get -> CheatEngine.Client.Scanning.ScanProtectionRequirement +CheatEngine.Client.Scanning.ScanProtectionFilter.Equals(CheatEngine.Client.Scanning.ScanProtectionFilter other) -> bool +CheatEngine.Client.Scanning.ScanProtectionFilter.Executable.get -> CheatEngine.Client.Scanning.ScanProtectionRequirement +CheatEngine.Client.Scanning.ScanProtectionFilter.IsUnspecified.get -> bool +CheatEngine.Client.Scanning.ScanProtectionFilter.ScanProtectionFilter() -> void +CheatEngine.Client.Scanning.ScanProtectionFilter.ScanProtectionFilter(CheatEngine.Client.Scanning.ScanProtectionRequirement executable, CheatEngine.Client.Scanning.ScanProtectionRequirement copyOnWrite, CheatEngine.Client.Scanning.ScanProtectionRequirement writable) -> void +CheatEngine.Client.Scanning.ScanProtectionFilter.Writable.get -> CheatEngine.Client.Scanning.ScanProtectionRequirement +CheatEngine.Client.Scanning.ScanProtectionRequirement +CheatEngine.Client.Scanning.ScanProtectionRequirement.Any = 3 -> CheatEngine.Client.Scanning.ScanProtectionRequirement +CheatEngine.Client.Scanning.ScanProtectionRequirement.Excluded = 2 -> CheatEngine.Client.Scanning.ScanProtectionRequirement +CheatEngine.Client.Scanning.ScanProtectionRequirement.Required = 1 -> CheatEngine.Client.Scanning.ScanProtectionRequirement +CheatEngine.Client.Scanning.ScanProtectionRequirement.Unspecified = 0 -> CheatEngine.Client.Scanning.ScanProtectionRequirement +CheatEngine.Client.Tables.AddressTableSnapshot +CheatEngine.Client.Tables.AddressTableSnapshot.AddressTableSnapshot() -> void +CheatEngine.Client.Tables.AddressTableSnapshot.AddressTableSnapshot(System.Collections.Immutable.ImmutableArray records) -> void +CheatEngine.Client.Tables.AddressTableSnapshot.RecordCount.get -> int +CheatEngine.Client.Tables.AddressTableSnapshot.Records.get -> System.Collections.Immutable.ImmutableArray +CheatEngine.Client.Tables.ITableClient +CheatEngine.Client.Tables.ITableClient.Create(CheatEngine.Client.Tables.MemoryRecordDefinition definition, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Tables.MemoryRecordSnapshot +CheatEngine.Client.Tables.ITableClient.Delete(CheatEngine.SDK.Engine.AddressList.MemoryRecordId id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void +CheatEngine.Client.Tables.ITableClient.Find(CheatEngine.Client.Tables.MemoryRecordSearch search, CheatEngine.Client.Tables.MemoryRecordCollectionRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Immutable.ImmutableArray +CheatEngine.Client.Tables.ITableClient.GetHierarchy(CheatEngine.SDK.Engine.AddressList.MemoryRecordId rootId, CheatEngine.Client.Tables.MemoryRecordHierarchyRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Tables.MemoryRecordHierarchySnapshot +CheatEngine.Client.Tables.ITableClient.GetRecord(CheatEngine.SDK.Engine.AddressList.MemoryRecordId id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Tables.MemoryRecordSnapshot +CheatEngine.Client.Tables.ITableClient.GetRecordAt(int index, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Tables.MemoryRecordSnapshot +CheatEngine.Client.Tables.ITableClient.GetRecordCount(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> int +CheatEngine.Client.Tables.ITableClient.GetSelectedRecord(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Tables.MemoryRecordSnapshot +CheatEngine.Client.Tables.ITableClient.GetSnapshot(CheatEngine.Client.Tables.MemoryRecordCollectionRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Tables.AddressTableSnapshot +CheatEngine.Client.Tables.ITableClient.LoadTrustedTable(CheatEngine.Client.Tables.TableLoadRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void +CheatEngine.Client.Tables.ITableClient.SaveTable(CheatEngine.Client.Tables.TableSaveRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void +CheatEngine.Client.Tables.ITableClient.SelectRecord(CheatEngine.SDK.Engine.AddressList.MemoryRecordId id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Tables.MemoryRecordSnapshot +CheatEngine.Client.Tables.ITableClient.SetActive(CheatEngine.SDK.Engine.AddressList.MemoryRecordId id, bool isActive, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Tables.MemoryRecordSnapshot +CheatEngine.Client.Tables.ITableClient.SetParent(CheatEngine.SDK.Engine.AddressList.MemoryRecordId childId, CheatEngine.SDK.Engine.AddressList.MemoryRecordId? parentId, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Tables.MemoryRecordSnapshot +CheatEngine.Client.Tables.ITableClient.TryCreate(CheatEngine.Client.Tables.MemoryRecordDefinition definition, out CheatEngine.Client.Tables.MemoryRecordSnapshot record, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Tables.ITableClient.TryDelete(CheatEngine.SDK.Engine.AddressList.MemoryRecordId id, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Tables.ITableClient.TryFind(CheatEngine.Client.Tables.MemoryRecordSearch search, CheatEngine.Client.Tables.MemoryRecordCollectionRequest request, out System.Collections.Immutable.ImmutableArray records, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Tables.ITableClient.TryGetHierarchy(CheatEngine.SDK.Engine.AddressList.MemoryRecordId rootId, CheatEngine.Client.Tables.MemoryRecordHierarchyRequest request, out CheatEngine.Client.Tables.MemoryRecordHierarchySnapshot hierarchy, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Tables.ITableClient.TryGetRecord(CheatEngine.SDK.Engine.AddressList.MemoryRecordId id, out CheatEngine.Client.Tables.MemoryRecordSnapshot record, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Tables.ITableClient.TryGetRecordAt(int index, out CheatEngine.Client.Tables.MemoryRecordSnapshot record, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Tables.ITableClient.TryGetRecordCount(out int recordCount, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Tables.ITableClient.TryGetSelectedRecord(out CheatEngine.Client.Tables.MemoryRecordSnapshot record, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Tables.ITableClient.TryGetSnapshot(CheatEngine.Client.Tables.MemoryRecordCollectionRequest request, out CheatEngine.Client.Tables.AddressTableSnapshot table, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Tables.ITableClient.TryLoadTrustedTable(CheatEngine.Client.Tables.TableLoadRequest request, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Tables.ITableClient.TrySaveTable(CheatEngine.Client.Tables.TableSaveRequest request, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Tables.ITableClient.TrySelectRecord(CheatEngine.SDK.Engine.AddressList.MemoryRecordId id, out CheatEngine.Client.Tables.MemoryRecordSnapshot record, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Tables.ITableClient.TrySetActive(CheatEngine.SDK.Engine.AddressList.MemoryRecordId id, bool isActive, out CheatEngine.Client.Tables.MemoryRecordSnapshot record, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Tables.ITableClient.TrySetParent(CheatEngine.SDK.Engine.AddressList.MemoryRecordId childId, CheatEngine.SDK.Engine.AddressList.MemoryRecordId? parentId, out CheatEngine.Client.Tables.MemoryRecordSnapshot record, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Tables.ITableClient.TryUpdate(CheatEngine.SDK.Engine.AddressList.MemoryRecordId id, CheatEngine.Client.Tables.MemoryRecordUpdate update, out CheatEngine.Client.Tables.MemoryRecordSnapshot record, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Tables.ITableClient.Update(CheatEngine.SDK.Engine.AddressList.MemoryRecordId id, CheatEngine.Client.Tables.MemoryRecordUpdate update, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Tables.MemoryRecordSnapshot +CheatEngine.Client.Tables.MemoryRecordCollectionRequest +CheatEngine.Client.Tables.MemoryRecordCollectionRequest.Equals(CheatEngine.Client.Tables.MemoryRecordCollectionRequest other) -> bool +CheatEngine.Client.Tables.MemoryRecordCollectionRequest.MaximumItems.get -> int +CheatEngine.Client.Tables.MemoryRecordCollectionRequest.MemoryRecordCollectionRequest() -> void +CheatEngine.Client.Tables.MemoryRecordCollectionRequest.MemoryRecordCollectionRequest(int maximumItems) -> void +CheatEngine.Client.Tables.MemoryRecordContentSnapshot +CheatEngine.Client.Tables.MemoryRecordContentSnapshot.AddressExpression.get -> string! +CheatEngine.Client.Tables.MemoryRecordContentSnapshot.Description.get -> string! +CheatEngine.Client.Tables.MemoryRecordContentSnapshot.Equals(CheatEngine.Client.Tables.MemoryRecordContentSnapshot other) -> bool +CheatEngine.Client.Tables.MemoryRecordContentSnapshot.MemoryRecordContentSnapshot() -> void +CheatEngine.Client.Tables.MemoryRecordContentSnapshot.MemoryRecordContentSnapshot(string! description, string! addressExpression, string! value, CheatEngine.SDK.Engine.Enums.VariableType variableType, string? script = null, int offsetCount = 0) -> void +CheatEngine.Client.Tables.MemoryRecordContentSnapshot.OffsetCount.get -> int +CheatEngine.Client.Tables.MemoryRecordContentSnapshot.Script.get -> string? +CheatEngine.Client.Tables.MemoryRecordContentSnapshot.Value.get -> string! +CheatEngine.Client.Tables.MemoryRecordContentSnapshot.VariableType.get -> CheatEngine.SDK.Engine.Enums.VariableType +CheatEngine.Client.Tables.MemoryRecordDefinition +CheatEngine.Client.Tables.MemoryRecordDefinition.AddressExpression.get -> string! +CheatEngine.Client.Tables.MemoryRecordDefinition.Description.get -> string! +CheatEngine.Client.Tables.MemoryRecordDefinition.Equals(CheatEngine.Client.Tables.MemoryRecordDefinition other) -> bool +CheatEngine.Client.Tables.MemoryRecordDefinition.MemoryRecordDefinition() -> void +CheatEngine.Client.Tables.MemoryRecordDefinition.MemoryRecordDefinition(string! description, string! addressExpression, string! value, CheatEngine.SDK.Engine.Enums.VariableType variableType, CheatEngine.SDK.Engine.AddressList.MemoryRecordId? parentId = null) -> void +CheatEngine.Client.Tables.MemoryRecordDefinition.ParentId.get -> CheatEngine.SDK.Engine.AddressList.MemoryRecordId? +CheatEngine.Client.Tables.MemoryRecordDefinition.Value.get -> string! +CheatEngine.Client.Tables.MemoryRecordDefinition.VariableType.get -> CheatEngine.SDK.Engine.Enums.VariableType +CheatEngine.Client.Tables.MemoryRecordHierarchyRequest +CheatEngine.Client.Tables.MemoryRecordHierarchyRequest.Equals(CheatEngine.Client.Tables.MemoryRecordHierarchyRequest other) -> bool +CheatEngine.Client.Tables.MemoryRecordHierarchyRequest.MaximumDepth.get -> int +CheatEngine.Client.Tables.MemoryRecordHierarchyRequest.MaximumItems.get -> int +CheatEngine.Client.Tables.MemoryRecordHierarchyRequest.MemoryRecordHierarchyRequest() -> void +CheatEngine.Client.Tables.MemoryRecordHierarchyRequest.MemoryRecordHierarchyRequest(int maximumItems, int maximumDepth) -> void +CheatEngine.Client.Tables.MemoryRecordHierarchySnapshot +CheatEngine.Client.Tables.MemoryRecordHierarchySnapshot.Children.get -> System.Collections.Immutable.ImmutableArray +CheatEngine.Client.Tables.MemoryRecordHierarchySnapshot.MemoryRecordHierarchySnapshot() -> void +CheatEngine.Client.Tables.MemoryRecordHierarchySnapshot.MemoryRecordHierarchySnapshot(CheatEngine.Client.Tables.MemoryRecordSnapshot record, System.Collections.Immutable.ImmutableArray children) -> void +CheatEngine.Client.Tables.MemoryRecordHierarchySnapshot.Record.get -> CheatEngine.Client.Tables.MemoryRecordSnapshot +CheatEngine.Client.Tables.MemoryRecordSearch +CheatEngine.Client.Tables.MemoryRecordSearch.AddressExpression.get -> string? +CheatEngine.Client.Tables.MemoryRecordSearch.DescriptionContains.get -> string? +CheatEngine.Client.Tables.MemoryRecordSearch.Equals(CheatEngine.Client.Tables.MemoryRecordSearch other) -> bool +CheatEngine.Client.Tables.MemoryRecordSearch.IsActive.get -> bool? +CheatEngine.Client.Tables.MemoryRecordSearch.MemoryRecordSearch() -> void +CheatEngine.Client.Tables.MemoryRecordSearch.MemoryRecordSearch(string? descriptionContains = null, string? addressExpression = null, CheatEngine.SDK.Engine.Enums.VariableType? variableType = null, bool? isActive = null) -> void +CheatEngine.Client.Tables.MemoryRecordSearch.VariableType.get -> CheatEngine.SDK.Engine.Enums.VariableType? +CheatEngine.Client.Tables.MemoryRecordSnapshot +CheatEngine.Client.Tables.MemoryRecordSnapshot.Content.get -> CheatEngine.Client.Tables.MemoryRecordContentSnapshot +CheatEngine.Client.Tables.MemoryRecordSnapshot.Equals(CheatEngine.Client.Tables.MemoryRecordSnapshot other) -> bool +CheatEngine.Client.Tables.MemoryRecordSnapshot.Id.get -> CheatEngine.SDK.Engine.AddressList.MemoryRecordId +CheatEngine.Client.Tables.MemoryRecordSnapshot.Index.get -> int +CheatEngine.Client.Tables.MemoryRecordSnapshot.MemoryRecordSnapshot() -> void +CheatEngine.Client.Tables.MemoryRecordSnapshot.MemoryRecordSnapshot(CheatEngine.SDK.Engine.AddressList.MemoryRecordId id, int index, CheatEngine.Client.Tables.MemoryRecordContentSnapshot content, CheatEngine.Client.Tables.MemoryRecordStateSnapshot state) -> void +CheatEngine.Client.Tables.MemoryRecordSnapshot.State.get -> CheatEngine.Client.Tables.MemoryRecordStateSnapshot +CheatEngine.Client.Tables.MemoryRecordStateSnapshot +CheatEngine.Client.Tables.MemoryRecordStateSnapshot.ChildCount.get -> int +CheatEngine.Client.Tables.MemoryRecordStateSnapshot.CurrentAddress.get -> CheatEngine.SDK.Engine.Values.Address? +CheatEngine.Client.Tables.MemoryRecordStateSnapshot.Equals(CheatEngine.Client.Tables.MemoryRecordStateSnapshot other) -> bool +CheatEngine.Client.Tables.MemoryRecordStateSnapshot.IsActive.get -> bool +CheatEngine.Client.Tables.MemoryRecordStateSnapshot.IsAsync.get -> bool +CheatEngine.Client.Tables.MemoryRecordStateSnapshot.IsAsyncProcessing.get -> bool +CheatEngine.Client.Tables.MemoryRecordStateSnapshot.MemoryRecordStateSnapshot() -> void +CheatEngine.Client.Tables.MemoryRecordStateSnapshot.MemoryRecordStateSnapshot(CheatEngine.SDK.Engine.Values.Address? currentAddress, bool isActive = false, int childCount = 0, bool isAsync = false, bool isAsyncProcessing = false) -> void +CheatEngine.Client.Tables.MemoryRecordUpdate +CheatEngine.Client.Tables.MemoryRecordUpdate.AddressExpression.get -> string? +CheatEngine.Client.Tables.MemoryRecordUpdate.Description.get -> string? +CheatEngine.Client.Tables.MemoryRecordUpdate.Equals(CheatEngine.Client.Tables.MemoryRecordUpdate other) -> bool +CheatEngine.Client.Tables.MemoryRecordUpdate.MemoryRecordUpdate() -> void +CheatEngine.Client.Tables.MemoryRecordUpdate.MemoryRecordUpdate(string? description = null, string? addressExpression = null, string? value = null, CheatEngine.SDK.Engine.Enums.VariableType? variableType = null) -> void +CheatEngine.Client.Tables.MemoryRecordUpdate.Value.get -> string? +CheatEngine.Client.Tables.MemoryRecordUpdate.VariableType.get -> CheatEngine.SDK.Engine.Enums.VariableType? +CheatEngine.Client.Tables.TableLoadRequest +CheatEngine.Client.Tables.TableLoadRequest.Equals(CheatEngine.Client.Tables.TableLoadRequest other) -> bool +CheatEngine.Client.Tables.TableLoadRequest.File.get -> CheatEngine.Client.Tables.TrustedTableFile +CheatEngine.Client.Tables.TableLoadRequest.Merge.get -> bool +CheatEngine.Client.Tables.TableLoadRequest.TableLoadRequest() -> void +CheatEngine.Client.Tables.TableLoadRequest.TableLoadRequest(CheatEngine.Client.Tables.TrustedTableFile file, bool merge = false) -> void +CheatEngine.Client.Tables.TableSaveRequest +CheatEngine.Client.Tables.TableSaveRequest.Equals(CheatEngine.Client.Tables.TableSaveRequest other) -> bool +CheatEngine.Client.Tables.TableSaveRequest.File.get -> CheatEngine.Client.Tables.TrustedTableFile +CheatEngine.Client.Tables.TableSaveRequest.TableSaveRequest() -> void +CheatEngine.Client.Tables.TableSaveRequest.TableSaveRequest(CheatEngine.Client.Tables.TrustedTableFile file) -> void +CheatEngine.Client.Tables.TrustedTableFile +CheatEngine.Client.Tables.TrustedTableFile.Equals(CheatEngine.Client.Tables.TrustedTableFile other) -> bool +CheatEngine.Client.Tables.TrustedTableFile.FullPath.get -> string! +CheatEngine.Client.Tables.TrustedTableFile.TrustedTableFile() -> void +CheatEngine.Client.Tables.TrustedTableFile.TrustedTableFile(string! path) -> void +[CECLIENT5001]CheatEngine.Client.ICheatEngineClient.ValueScans.get -> CheatEngine.Client.Scanning.IValueScanner! +[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession +[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession.FirstScan(CheatEngine.Client.Scanning.ValueScanFirstRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void +[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession.GetResultCount(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> ulong +[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession.Invalidation.get -> CheatEngine.Client.Scanning.ValueScanInvalidationKind +[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession.NextScan(CheatEngine.Client.Scanning.ValueScanNextRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void +[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession.Read(CheatEngine.Client.Scanning.ValueScanReadRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Scanning.ValueScanPage +[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession.Reset(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void +[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession.SelectionEpoch.get -> long +[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession.State.get -> CheatEngine.Client.Scanning.ValueScanSessionState +[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession.TryFirstScan(CheatEngine.Client.Scanning.ValueScanFirstRequest request, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession.TryGetResultCount(out ulong resultCount, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession.TryNextScan(CheatEngine.Client.Scanning.ValueScanNextRequest request, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession.TryRead(CheatEngine.Client.Scanning.ValueScanReadRequest request, out CheatEngine.Client.Scanning.ValueScanPage page, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession.TryReset(out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanner +[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanner.CreateSession(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Scanning.IValueScanSession! +[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanner.TryCreateSession(out CheatEngine.Client.Scanning.IValueScanSession? session, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanComparison +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanComparison.Between = 1 -> CheatEngine.Client.Scanning.ValueScanComparison +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanComparison.BiggerThan = 2 -> CheatEngine.Client.Scanning.ValueScanComparison +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanComparison.Changed = 9 -> CheatEngine.Client.Scanning.ValueScanComparison +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanComparison.Decreased = 7 -> CheatEngine.Client.Scanning.ValueScanComparison +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanComparison.DecreasedBy = 8 -> CheatEngine.Client.Scanning.ValueScanComparison +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanComparison.Exact = 0 -> CheatEngine.Client.Scanning.ValueScanComparison +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanComparison.Increased = 5 -> CheatEngine.Client.Scanning.ValueScanComparison +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanComparison.IncreasedBy = 6 -> CheatEngine.Client.Scanning.ValueScanComparison +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanComparison.SmallerThan = 3 -> CheatEngine.Client.Scanning.ValueScanComparison +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanComparison.Unchanged = 10 -> CheatEngine.Client.Scanning.ValueScanComparison +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanComparison.UnknownInitialValue = 4 -> CheatEngine.Client.Scanning.ValueScanComparison +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest.Alignment.get -> CheatEngine.Client.Scanning.ScanAlignment +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest.Comparison.get -> CheatEngine.Client.Scanning.ValueScanComparison +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest.Equals(CheatEngine.Client.Scanning.ValueScanFirstRequest other) -> bool +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest.Protection.get -> CheatEngine.Client.Scanning.ScanProtectionFilter +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest.StartAddress.get -> CheatEngine.SDK.Engine.Values.Address +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest.StopAddress.get -> CheatEngine.SDK.Engine.Values.Address +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest.UpperValue.get -> CheatEngine.Client.Scanning.ValueScanValue? +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest.Value.get -> CheatEngine.Client.Scanning.ValueScanValue? +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest.ValueScanFirstRequest() -> void +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest.ValueType.get -> CheatEngine.Client.Scanning.ValueScanValueType +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest.WithAlignment(CheatEngine.Client.Scanning.ScanAlignment alignment) -> CheatEngine.Client.Scanning.ValueScanFirstRequest +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest.WithProtection(CheatEngine.Client.Scanning.ScanProtectionFilter protection) -> CheatEngine.Client.Scanning.ValueScanFirstRequest +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest.WithRange(CheatEngine.SDK.Engine.Values.Address startAddress, CheatEngine.SDK.Engine.Values.Address stopAddress) -> CheatEngine.Client.Scanning.ValueScanFirstRequest +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanInvalidationKind +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanInvalidationKind.HostCallFailed = 2 -> CheatEngine.Client.Scanning.ValueScanInvalidationKind +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanInvalidationKind.None = 1 -> CheatEngine.Client.Scanning.ValueScanInvalidationKind +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanInvalidationKind.RuntimeChanged = 3 -> CheatEngine.Client.Scanning.ValueScanInvalidationKind +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanInvalidationKind.TargetChanged = 4 -> CheatEngine.Client.Scanning.ValueScanInvalidationKind +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanInvalidationKind.Unknown = 0 -> CheatEngine.Client.Scanning.ValueScanInvalidationKind +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanMatch +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanMatch.Address.get -> CheatEngine.SDK.Engine.Values.Address +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanMatch.Equals(CheatEngine.Client.Scanning.ValueScanMatch other) -> bool +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanMatch.ValueScanMatch() -> void +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanMatch.ValueScanMatch(CheatEngine.SDK.Engine.Values.Address address, string! valueText) -> void +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanMatch.ValueText.get -> string! +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanNextRequest +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanNextRequest.Comparison.get -> CheatEngine.Client.Scanning.ValueScanComparison +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanNextRequest.Equals(CheatEngine.Client.Scanning.ValueScanNextRequest other) -> bool +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanNextRequest.UpperValue.get -> CheatEngine.Client.Scanning.ValueScanValue? +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanNextRequest.Value.get -> CheatEngine.Client.Scanning.ValueScanValue? +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanNextRequest.ValueScanNextRequest() -> void +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanPage +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanPage.HasMore.get -> bool +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanPage.Matches.get -> System.Collections.Immutable.ImmutableArray +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanPage.NextStartIndex.get -> long +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanPage.ResultCount.get -> ulong +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanPage.StartIndex.get -> long +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanPage.ValueScanPage() -> void +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanPage.ValueScanPage(long startIndex, ulong resultCount, System.Collections.Immutable.ImmutableArray matches) -> void +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanReadRequest +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanReadRequest.Equals(CheatEngine.Client.Scanning.ValueScanReadRequest other) -> bool +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanReadRequest.MaximumCount.get -> int +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanReadRequest.StartIndex.get -> long +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanReadRequest.ValueScanReadRequest() -> void +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanReadRequest.ValueScanReadRequest(long startIndex, int maximumCount) -> void +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanSessionState +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanSessionState.Closed = 5 -> CheatEngine.Client.Scanning.ValueScanSessionState +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanSessionState.Created = 1 -> CheatEngine.Client.Scanning.ValueScanSessionState +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanSessionState.Invalidated = 4 -> CheatEngine.Client.Scanning.ValueScanSessionState +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanSessionState.ResultsReady = 3 -> CheatEngine.Client.Scanning.ValueScanSessionState +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanSessionState.Scanning = 2 -> CheatEngine.Client.Scanning.ValueScanSessionState +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanSessionState.Unknown = 0 -> CheatEngine.Client.Scanning.ValueScanSessionState +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValue +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValue.Equals(CheatEngine.Client.Scanning.ValueScanValue other) -> bool +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValue.IsNumeric.get -> bool +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValue.Text.get -> string? +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValue.ValueScanValue() -> void +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValue.ValueType.get -> CheatEngine.Client.Scanning.ValueScanValueType +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValueType +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValueType.ByteArray = 8 -> CheatEngine.Client.Scanning.ValueScanValueType +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValueType.DoubleFloat = 5 -> CheatEngine.Client.Scanning.ValueScanValueType +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValueType.Integer16 = 1 -> CheatEngine.Client.Scanning.ValueScanValueType +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValueType.Integer32 = 2 -> CheatEngine.Client.Scanning.ValueScanValueType +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValueType.Integer64 = 3 -> CheatEngine.Client.Scanning.ValueScanValueType +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValueType.Integer8 = 0 -> CheatEngine.Client.Scanning.ValueScanValueType +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValueType.SingleFloat = 4 -> CheatEngine.Client.Scanning.ValueScanValueType +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValueType.Utf16String = 7 -> CheatEngine.Client.Scanning.ValueScanValueType +[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValueType.Utf8String = 6 -> CheatEngine.Client.Scanning.ValueScanValueType +[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanFirstRequest.GetHashCode() -> int +[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanMatch.GetHashCode() -> int +[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanNextRequest.GetHashCode() -> int +[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanReadRequest.GetHashCode() -> int +[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanValue.GetHashCode() -> int +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanFirstRequest.Between(CheatEngine.Client.Scanning.ValueScanValue lowest, CheatEngine.Client.Scanning.ValueScanValue highest) -> CheatEngine.Client.Scanning.ValueScanFirstRequest +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanFirstRequest.BiggerThan(CheatEngine.Client.Scanning.ValueScanValue value) -> CheatEngine.Client.Scanning.ValueScanFirstRequest +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanFirstRequest.Exact(CheatEngine.Client.Scanning.ValueScanValue value) -> CheatEngine.Client.Scanning.ValueScanFirstRequest +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanFirstRequest.SmallerThan(CheatEngine.Client.Scanning.ValueScanValue value) -> CheatEngine.Client.Scanning.ValueScanFirstRequest +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanFirstRequest.UnknownInitialValue(CheatEngine.Client.Scanning.ValueScanValueType valueType) -> CheatEngine.Client.Scanning.ValueScanFirstRequest +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanFirstRequest.operator !=(CheatEngine.Client.Scanning.ValueScanFirstRequest left, CheatEngine.Client.Scanning.ValueScanFirstRequest right) -> bool +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanFirstRequest.operator ==(CheatEngine.Client.Scanning.ValueScanFirstRequest left, CheatEngine.Client.Scanning.ValueScanFirstRequest right) -> bool +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanMatch.operator !=(CheatEngine.Client.Scanning.ValueScanMatch left, CheatEngine.Client.Scanning.ValueScanMatch right) -> bool +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanMatch.operator ==(CheatEngine.Client.Scanning.ValueScanMatch left, CheatEngine.Client.Scanning.ValueScanMatch right) -> bool +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanNextRequest.Between(CheatEngine.Client.Scanning.ValueScanValue lowest, CheatEngine.Client.Scanning.ValueScanValue highest) -> CheatEngine.Client.Scanning.ValueScanNextRequest +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanNextRequest.BiggerThan(CheatEngine.Client.Scanning.ValueScanValue value) -> CheatEngine.Client.Scanning.ValueScanNextRequest +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanNextRequest.Changed() -> CheatEngine.Client.Scanning.ValueScanNextRequest +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanNextRequest.Decreased() -> CheatEngine.Client.Scanning.ValueScanNextRequest +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanNextRequest.DecreasedBy(CheatEngine.Client.Scanning.ValueScanValue value) -> CheatEngine.Client.Scanning.ValueScanNextRequest +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanNextRequest.Exact(CheatEngine.Client.Scanning.ValueScanValue value) -> CheatEngine.Client.Scanning.ValueScanNextRequest +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanNextRequest.Increased() -> CheatEngine.Client.Scanning.ValueScanNextRequest +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanNextRequest.IncreasedBy(CheatEngine.Client.Scanning.ValueScanValue value) -> CheatEngine.Client.Scanning.ValueScanNextRequest +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanNextRequest.SmallerThan(CheatEngine.Client.Scanning.ValueScanValue value) -> CheatEngine.Client.Scanning.ValueScanNextRequest +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanNextRequest.Unchanged() -> CheatEngine.Client.Scanning.ValueScanNextRequest +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanNextRequest.operator !=(CheatEngine.Client.Scanning.ValueScanNextRequest left, CheatEngine.Client.Scanning.ValueScanNextRequest right) -> bool +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanNextRequest.operator ==(CheatEngine.Client.Scanning.ValueScanNextRequest left, CheatEngine.Client.Scanning.ValueScanNextRequest right) -> bool +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanReadRequest.operator !=(CheatEngine.Client.Scanning.ValueScanReadRequest left, CheatEngine.Client.Scanning.ValueScanReadRequest right) -> bool +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanReadRequest.operator ==(CheatEngine.Client.Scanning.ValueScanReadRequest left, CheatEngine.Client.Scanning.ValueScanReadRequest right) -> bool +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanValue.FromByte(byte value) -> CheatEngine.Client.Scanning.ValueScanValue +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanValue.FromBytes(System.ReadOnlySpan bytes) -> CheatEngine.Client.Scanning.ValueScanValue +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanValue.FromDouble(double value, int decimals) -> CheatEngine.Client.Scanning.ValueScanValue +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanValue.FromInt16(short value) -> CheatEngine.Client.Scanning.ValueScanValue +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanValue.FromInt32(int value) -> CheatEngine.Client.Scanning.ValueScanValue +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanValue.FromInt64(long value) -> CheatEngine.Client.Scanning.ValueScanValue +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanValue.FromSingle(float value, int decimals) -> CheatEngine.Client.Scanning.ValueScanValue +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanValue.FromUtf16String(string! text) -> CheatEngine.Client.Scanning.ValueScanValue +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanValue.FromUtf8String(string! text) -> CheatEngine.Client.Scanning.ValueScanValue +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanValue.operator !=(CheatEngine.Client.Scanning.ValueScanValue left, CheatEngine.Client.Scanning.ValueScanValue right) -> bool +[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanValue.operator ==(CheatEngine.Client.Scanning.ValueScanValue left, CheatEngine.Client.Scanning.ValueScanValue right) -> bool +[CECLIENT5002]CheatEngine.Client.Allocations.AllocationProtection +[CECLIENT5002]CheatEngine.Client.Allocations.AllocationProtection.ExecuteReadWrite = 1 -> CheatEngine.Client.Allocations.AllocationProtection +[CECLIENT5002]CheatEngine.Client.Allocations.AllocationProtection.ReadWrite = 0 -> CheatEngine.Client.Allocations.AllocationProtection +[CECLIENT5002]CheatEngine.Client.Allocations.AllocationRequest +[CECLIENT5002]CheatEngine.Client.Allocations.AllocationRequest.AllocationRequest() -> void +[CECLIENT5002]CheatEngine.Client.Allocations.AllocationRequest.AllocationRequest(long size, CheatEngine.Client.Allocations.AllocationProtection protection = CheatEngine.Client.Allocations.AllocationProtection.ReadWrite, CheatEngine.SDK.Engine.Values.Address? preferredAddress = null) -> void +[CECLIENT5002]CheatEngine.Client.Allocations.AllocationRequest.Equals(CheatEngine.Client.Allocations.AllocationRequest other) -> bool +[CECLIENT5002]CheatEngine.Client.Allocations.AllocationRequest.PreferredAddress.get -> CheatEngine.SDK.Engine.Values.Address? +[CECLIENT5002]CheatEngine.Client.Allocations.AllocationRequest.Protection.get -> CheatEngine.Client.Allocations.AllocationProtection +[CECLIENT5002]CheatEngine.Client.Allocations.AllocationRequest.Size.get -> long +[CECLIENT5002]CheatEngine.Client.Allocations.IAllocationClient +[CECLIENT5002]CheatEngine.Client.Allocations.IAllocationClient.Allocate(CheatEngine.Client.Allocations.AllocationRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Allocations.ITargetMemoryLease! +[CECLIENT5002]CheatEngine.Client.Allocations.IAllocationClient.TryAllocate(CheatEngine.Client.Allocations.AllocationRequest request, out CheatEngine.Client.Allocations.ITargetMemoryLease? lease, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +[CECLIENT5002]CheatEngine.Client.Allocations.ITargetMemoryLease +[CECLIENT5002]CheatEngine.Client.Allocations.ITargetMemoryLease.Address.get -> CheatEngine.SDK.Engine.Values.Address +[CECLIENT5002]CheatEngine.Client.Allocations.ITargetMemoryLease.Protection.get -> CheatEngine.Client.Allocations.AllocationProtection +[CECLIENT5002]CheatEngine.Client.Allocations.ITargetMemoryLease.SelectionEpoch.get -> long +[CECLIENT5002]CheatEngine.Client.Allocations.ITargetMemoryLease.Size.get -> long +[CECLIENT5002]CheatEngine.Client.ICheatEngineClient.Allocations.get -> CheatEngine.Client.Allocations.IAllocationClient! +[CECLIENT5002]override CheatEngine.Client.Allocations.AllocationRequest.GetHashCode() -> int +[CECLIENT5002]static CheatEngine.Client.Allocations.AllocationRequest.operator !=(CheatEngine.Client.Allocations.AllocationRequest left, CheatEngine.Client.Allocations.AllocationRequest right) -> bool +[CECLIENT5002]static CheatEngine.Client.Allocations.AllocationRequest.operator ==(CheatEngine.Client.Allocations.AllocationRequest left, CheatEngine.Client.Allocations.AllocationRequest right) -> bool +[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionRequest +[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionRequest.Address.get -> CheatEngine.SDK.Engine.Values.Address +[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionRequest.AssemblyInstructionRequest() -> void +[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionRequest.AssemblyInstructionRequest(CheatEngine.SDK.Engine.Values.Address address, string! instruction, CheatEngine.Client.Assembly.InstructionEncodingPreference preference = CheatEngine.Client.Assembly.InstructionEncodingPreference.None, bool skipRangeCheck = false) -> void +[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionRequest.Equals(CheatEngine.Client.Assembly.AssemblyInstructionRequest other) -> bool +[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionRequest.Instruction.get -> string! +[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionRequest.Preference.get -> CheatEngine.Client.Assembly.InstructionEncodingPreference +[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionRequest.SkipRangeCheck.get -> bool +[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionSnapshot +[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionSnapshot.Address.get -> CheatEngine.SDK.Engine.Values.Address +[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionSnapshot.AddressText.get -> string! +[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionSnapshot.AssemblyInstructionSnapshot() -> void +[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionSnapshot.AssemblyInstructionSnapshot(CheatEngine.SDK.Engine.Values.Address address, int length, string! addressText, string! opcode, string! extra, System.ReadOnlySpan bytes) -> void +[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionSnapshot.Bytes.get -> System.Collections.Immutable.ImmutableArray +[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionSnapshot.Extra.get -> string! +[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionSnapshot.Length.get -> int +[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionSnapshot.Opcode.get -> string! +[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionSnapshot.Text.get -> string! +[CECLIENT5003]CheatEngine.Client.Assembly.IAssemblyClient +[CECLIENT5003]CheatEngine.Client.Assembly.IAssemblyClient.Assemble(CheatEngine.Client.Assembly.AssemblyInstructionRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Immutable.ImmutableArray +[CECLIENT5003]CheatEngine.Client.Assembly.IAssemblyClient.Disassemble(CheatEngine.SDK.Engine.Values.Address address, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Assembly.AssemblyInstructionSnapshot +[CECLIENT5003]CheatEngine.Client.Assembly.IAssemblyClient.GetInstructionLength(CheatEngine.SDK.Engine.Values.Address address, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> int +[CECLIENT5003]CheatEngine.Client.Assembly.IAssemblyClient.GetPreviousInstructionAddress(CheatEngine.SDK.Engine.Values.Address address, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.SDK.Engine.Values.Address +[CECLIENT5003]CheatEngine.Client.Assembly.IAssemblyClient.TryAssemble(CheatEngine.Client.Assembly.AssemblyInstructionRequest request, out System.Collections.Immutable.ImmutableArray bytes, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +[CECLIENT5003]CheatEngine.Client.Assembly.IAssemblyClient.TryDisassemble(CheatEngine.SDK.Engine.Values.Address address, out CheatEngine.Client.Assembly.AssemblyInstructionSnapshot instruction, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +[CECLIENT5003]CheatEngine.Client.Assembly.IAssemblyClient.TryGetInstructionLength(CheatEngine.SDK.Engine.Values.Address address, out int length, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +[CECLIENT5003]CheatEngine.Client.Assembly.IAssemblyClient.TryGetPreviousInstructionAddress(CheatEngine.SDK.Engine.Values.Address address, out CheatEngine.SDK.Engine.Values.Address previousAddress, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +[CECLIENT5003]CheatEngine.Client.Assembly.InstructionEncodingPreference +[CECLIENT5003]CheatEngine.Client.Assembly.InstructionEncodingPreference.Far = 3 -> CheatEngine.Client.Assembly.InstructionEncodingPreference +[CECLIENT5003]CheatEngine.Client.Assembly.InstructionEncodingPreference.Long = 2 -> CheatEngine.Client.Assembly.InstructionEncodingPreference +[CECLIENT5003]CheatEngine.Client.Assembly.InstructionEncodingPreference.None = 0 -> CheatEngine.Client.Assembly.InstructionEncodingPreference +[CECLIENT5003]CheatEngine.Client.Assembly.InstructionEncodingPreference.Short = 1 -> CheatEngine.Client.Assembly.InstructionEncodingPreference +[CECLIENT5003]CheatEngine.Client.ICheatEngineClient.Assembly.get -> CheatEngine.Client.Assembly.IAssemblyClient! +[CECLIENT5003]override CheatEngine.Client.Assembly.AssemblyInstructionRequest.GetHashCode() -> int +[CECLIENT5003]static CheatEngine.Client.Assembly.AssemblyInstructionRequest.operator !=(CheatEngine.Client.Assembly.AssemblyInstructionRequest left, CheatEngine.Client.Assembly.AssemblyInstructionRequest right) -> bool +[CECLIENT5003]static CheatEngine.Client.Assembly.AssemblyInstructionRequest.operator ==(CheatEngine.Client.Assembly.AssemblyInstructionRequest left, CheatEngine.Client.Assembly.AssemblyInstructionRequest right) -> bool +[CECLIENT5004]CheatEngine.Client.Assembly.AutoAssemblerCheckResult +[CECLIENT5004]CheatEngine.Client.Assembly.AutoAssemblerCheckResult.AutoAssemblerCheckResult() -> void +[CECLIENT5004]CheatEngine.Client.Assembly.AutoAssemblerCheckResult.AutoAssemblerCheckResult(bool isAccepted, string? hostMessages, bool hostMessagesTruncated) -> void +[CECLIENT5004]CheatEngine.Client.Assembly.AutoAssemblerCheckResult.Equals(CheatEngine.Client.Assembly.AutoAssemblerCheckResult other) -> bool +[CECLIENT5004]CheatEngine.Client.Assembly.AutoAssemblerCheckResult.HostMessages.get -> string? +[CECLIENT5004]CheatEngine.Client.Assembly.AutoAssemblerCheckResult.HostMessagesTruncated.get -> bool +[CECLIENT5004]CheatEngine.Client.Assembly.AutoAssemblerCheckResult.IsAccepted.get -> bool +[CECLIENT5004]CheatEngine.Client.Assembly.AutoAssemblerScript +[CECLIENT5004]CheatEngine.Client.Assembly.AutoAssemblerScript.AutoAssemblerScript() -> void +[CECLIENT5004]CheatEngine.Client.Assembly.AutoAssemblerScript.AutoAssemblerScript(string! source, string? name = null) -> void +[CECLIENT5004]CheatEngine.Client.Assembly.AutoAssemblerScript.Equals(CheatEngine.Client.Assembly.AutoAssemblerScript other) -> bool +[CECLIENT5004]CheatEngine.Client.Assembly.AutoAssemblerScript.Name.get -> string? +[CECLIENT5004]CheatEngine.Client.Assembly.AutoAssemblerScript.Source.get -> string! +[CECLIENT5004]CheatEngine.Client.Assembly.IAutoAssemblerClient +[CECLIENT5004]CheatEngine.Client.Assembly.IAutoAssemblerClient.ApplyPatch(CheatEngine.Client.Assembly.AutoAssemblerScript script, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Assembly.IAutoAssemblerPatchLease! +[CECLIENT5004]CheatEngine.Client.Assembly.IAutoAssemblerClient.Check(CheatEngine.Client.Assembly.AutoAssemblerScript script, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Assembly.AutoAssemblerCheckResult +[CECLIENT5004]CheatEngine.Client.Assembly.IAutoAssemblerClient.TryApplyPatch(CheatEngine.Client.Assembly.AutoAssemblerScript script, out CheatEngine.Client.Assembly.IAutoAssemblerPatchLease? lease, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +[CECLIENT5004]CheatEngine.Client.Assembly.IAutoAssemblerClient.TryCheck(CheatEngine.Client.Assembly.AutoAssemblerScript script, out CheatEngine.Client.Assembly.AutoAssemblerCheckResult result, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +[CECLIENT5004]CheatEngine.Client.Assembly.IAutoAssemblerPatchLease +[CECLIENT5004]CheatEngine.Client.Assembly.IAutoAssemblerPatchLease.AppliedAfterTargetChange.get -> bool +[CECLIENT5004]CheatEngine.Client.Assembly.IAutoAssemblerPatchLease.CanDisable.get -> bool +[CECLIENT5004]CheatEngine.Client.Assembly.IAutoAssemblerPatchLease.HostWarnings.get -> string? +[CECLIENT5004]CheatEngine.Client.Assembly.IAutoAssemblerPatchLease.HostWarningsTruncated.get -> bool +[CECLIENT5004]CheatEngine.Client.Assembly.IAutoAssemblerPatchLease.Name.get -> string? +[CECLIENT5004]CheatEngine.Client.Assembly.IAutoAssemblerPatchLease.SelectionEpoch.get -> long +[CECLIENT5004]override CheatEngine.Client.Assembly.AutoAssemblerCheckResult.GetHashCode() -> int +[CECLIENT5004]override CheatEngine.Client.Assembly.AutoAssemblerCheckResult.ToString() -> string! +[CECLIENT5004]override CheatEngine.Client.Assembly.AutoAssemblerScript.GetHashCode() -> int +[CECLIENT5004]static CheatEngine.Client.Assembly.AutoAssemblerCheckResult.operator !=(CheatEngine.Client.Assembly.AutoAssemblerCheckResult left, CheatEngine.Client.Assembly.AutoAssemblerCheckResult right) -> bool +[CECLIENT5004]static CheatEngine.Client.Assembly.AutoAssemblerCheckResult.operator ==(CheatEngine.Client.Assembly.AutoAssemblerCheckResult left, CheatEngine.Client.Assembly.AutoAssemblerCheckResult right) -> bool +[CECLIENT5004]static CheatEngine.Client.Assembly.AutoAssemblerScript.operator !=(CheatEngine.Client.Assembly.AutoAssemblerScript left, CheatEngine.Client.Assembly.AutoAssemblerScript right) -> bool +[CECLIENT5004]static CheatEngine.Client.Assembly.AutoAssemblerScript.operator ==(CheatEngine.Client.Assembly.AutoAssemblerScript left, CheatEngine.Client.Assembly.AutoAssemblerScript right) -> bool +const CheatEngine.Client.Memory.MemoryBatchLimits.MaximumOperationCount = 1024 -> int +const CheatEngine.Client.Memory.MemoryResourceLimits.DefaultMaximumBatchOperationCount = 1024 -> int +const CheatEngine.Client.Memory.MemoryResourceLimits.DefaultMaximumBatchPayloadBytes = 65536 -> int +const CheatEngine.Client.Memory.MemoryResourceLimits.DefaultMaximumReadBytes = 1048576 -> int +const CheatEngine.Client.Memory.MemoryResourceLimits.DefaultMaximumStringBytes = 65536 -> int +const CheatEngine.Client.Memory.MemoryResourceLimits.DefaultMaximumWriteBytes = 1048576 -> int +override CheatEngine.Client.Inspection.InspectionCollectionRequest.GetHashCode() -> int +override CheatEngine.Client.Inspection.SymbolRegistration.GetHashCode() -> int +override CheatEngine.Client.Lua.LuaExportDescriptor.GetHashCode() -> int +override CheatEngine.Client.Lua.LuaModuleReleaseOutcome.ToString() -> string! +override CheatEngine.Client.Lua.LuaScript.GetHashCode() -> int +override CheatEngine.Client.Memory.MemoryBytesReadRequest.GetHashCode() -> int +override CheatEngine.Client.Memory.MemoryReadRequest.GetHashCode() -> int +override CheatEngine.Client.Memory.MemoryStringReadRequest.GetHashCode() -> int +override CheatEngine.Client.Memory.MemoryStringWriteRequest.GetHashCode() -> int +override CheatEngine.Client.Memory.MemoryWriteRequest.GetHashCode() -> int +override CheatEngine.Client.Processes.LocalProcessEnumerationRequest.GetHashCode() -> int +override CheatEngine.Client.Processes.LocalProcessId.GetHashCode() -> int +override CheatEngine.Client.Processes.LocalProcessSnapshot.GetHashCode() -> int +override CheatEngine.Client.Processes.ProcessSnapshot.GetHashCode() -> int +override CheatEngine.Client.Results.CheatEngineFailure.GetHashCode() -> int +override CheatEngine.Client.Results.CheatEngineFailure.ToString() -> string! +override CheatEngine.Client.Results.LeaseReleaseOutcome.GetHashCode() -> int +override CheatEngine.Client.Results.LeaseReleaseOutcome.ToString() -> string! +override CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.GetHashCode() -> int +override CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot.GetHashCode() -> int +override CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.GetHashCode() -> int +override CheatEngine.Client.Runtime.ClientCapabilities.Equals(object? obj) -> bool +override CheatEngine.Client.Runtime.ClientCapabilities.GetHashCode() -> int +override CheatEngine.Client.Runtime.ClientCapabilityAvailability.GetHashCode() -> int +override CheatEngine.Client.Runtime.ClientCapabilityEvidence.GetHashCode() -> int +override CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate.GetHashCode() -> int +override CheatEngine.Client.Runtime.ClientCapabilityId.Equals(object? obj) -> bool +override CheatEngine.Client.Runtime.ClientCapabilityId.GetHashCode() -> int +override CheatEngine.Client.Runtime.ClientCapabilityId.ToString() -> string! +override CheatEngine.Client.Scanning.AobPattern.GetHashCode() -> int +override CheatEngine.Client.Scanning.AobPattern.ToString() -> string! +override CheatEngine.Client.Scanning.AobScanRange.GetHashCode() -> int +override CheatEngine.Client.Scanning.AobScanRequest.GetHashCode() -> int +override CheatEngine.Client.Scanning.PatternScanMetrics.GetHashCode() -> int +override CheatEngine.Client.Scanning.ScanAlignment.GetHashCode() -> int +override CheatEngine.Client.Scanning.ScanProtectionFilter.GetHashCode() -> int +override CheatEngine.Client.Tables.MemoryRecordCollectionRequest.GetHashCode() -> int +override CheatEngine.Client.Tables.MemoryRecordContentSnapshot.GetHashCode() -> int +override CheatEngine.Client.Tables.MemoryRecordDefinition.GetHashCode() -> int +override CheatEngine.Client.Tables.MemoryRecordHierarchyRequest.GetHashCode() -> int +override CheatEngine.Client.Tables.MemoryRecordSearch.GetHashCode() -> int +override CheatEngine.Client.Tables.MemoryRecordSnapshot.GetHashCode() -> int +override CheatEngine.Client.Tables.MemoryRecordStateSnapshot.GetHashCode() -> int +override CheatEngine.Client.Tables.MemoryRecordUpdate.GetHashCode() -> int +override CheatEngine.Client.Tables.TableLoadRequest.GetHashCode() -> int +override CheatEngine.Client.Tables.TableSaveRequest.GetHashCode() -> int +override CheatEngine.Client.Tables.TrustedTableFile.GetHashCode() -> int +static CheatEngine.Client.Inspection.InspectionCollectionRequest.operator !=(CheatEngine.Client.Inspection.InspectionCollectionRequest left, CheatEngine.Client.Inspection.InspectionCollectionRequest right) -> bool +static CheatEngine.Client.Inspection.InspectionCollectionRequest.operator ==(CheatEngine.Client.Inspection.InspectionCollectionRequest left, CheatEngine.Client.Inspection.InspectionCollectionRequest right) -> bool +static CheatEngine.Client.Inspection.SymbolRegistration.operator !=(CheatEngine.Client.Inspection.SymbolRegistration left, CheatEngine.Client.Inspection.SymbolRegistration right) -> bool +static CheatEngine.Client.Inspection.SymbolRegistration.operator ==(CheatEngine.Client.Inspection.SymbolRegistration left, CheatEngine.Client.Inspection.SymbolRegistration right) -> bool +static CheatEngine.Client.Lua.LuaExportDescriptor.operator !=(CheatEngine.Client.Lua.LuaExportDescriptor left, CheatEngine.Client.Lua.LuaExportDescriptor right) -> bool +static CheatEngine.Client.Lua.LuaExportDescriptor.operator ==(CheatEngine.Client.Lua.LuaExportDescriptor left, CheatEngine.Client.Lua.LuaExportDescriptor right) -> bool +static CheatEngine.Client.Lua.LuaModuleReleaseOutcome.AlreadyReleased(string! moduleName) -> CheatEngine.Client.Lua.LuaModuleReleaseOutcome! +static CheatEngine.Client.Lua.LuaModuleReleaseOutcome.CleanupUnavailable(string! moduleName, int remainingCount) -> CheatEngine.Client.Lua.LuaModuleReleaseOutcome! +static CheatEngine.Client.Lua.LuaModuleReleaseOutcome.Create(string! moduleName, CheatEngine.Client.Results.LeaseReleaseKind kind, int removedCount, int restoredCount, int replacementCount, int remainingCount, System.Collections.Immutable.ImmutableArray failedExports) -> CheatEngine.Client.Lua.LuaModuleReleaseOutcome! +static CheatEngine.Client.Lua.LuaModuleReleaseOutcome.PartiallyReleased(string! moduleName, int removedCount, int restoredCount, int replacementCount, System.Collections.Immutable.ImmutableArray failedExports) -> CheatEngine.Client.Lua.LuaModuleReleaseOutcome! +static CheatEngine.Client.Lua.LuaModuleReleaseOutcome.RefusedRuntimeChanged(string! moduleName, int remainingCount) -> CheatEngine.Client.Lua.LuaModuleReleaseOutcome! +static CheatEngine.Client.Lua.LuaModuleReleaseOutcome.Released(string! moduleName, int removedCount, int restoredCount, int replacementCount) -> CheatEngine.Client.Lua.LuaModuleReleaseOutcome! +static CheatEngine.Client.Lua.LuaScript.operator !=(CheatEngine.Client.Lua.LuaScript left, CheatEngine.Client.Lua.LuaScript right) -> bool +static CheatEngine.Client.Lua.LuaScript.operator ==(CheatEngine.Client.Lua.LuaScript left, CheatEngine.Client.Lua.LuaScript right) -> bool +static CheatEngine.Client.Memory.MemoryBytesReadRequest.operator !=(CheatEngine.Client.Memory.MemoryBytesReadRequest left, CheatEngine.Client.Memory.MemoryBytesReadRequest right) -> bool +static CheatEngine.Client.Memory.MemoryBytesReadRequest.operator ==(CheatEngine.Client.Memory.MemoryBytesReadRequest left, CheatEngine.Client.Memory.MemoryBytesReadRequest right) -> bool +static CheatEngine.Client.Memory.MemoryReadRequest.operator !=(CheatEngine.Client.Memory.MemoryReadRequest left, CheatEngine.Client.Memory.MemoryReadRequest right) -> bool +static CheatEngine.Client.Memory.MemoryReadRequest.operator ==(CheatEngine.Client.Memory.MemoryReadRequest left, CheatEngine.Client.Memory.MemoryReadRequest right) -> bool +static CheatEngine.Client.Memory.MemoryStringReadRequest.operator !=(CheatEngine.Client.Memory.MemoryStringReadRequest left, CheatEngine.Client.Memory.MemoryStringReadRequest right) -> bool +static CheatEngine.Client.Memory.MemoryStringReadRequest.operator ==(CheatEngine.Client.Memory.MemoryStringReadRequest left, CheatEngine.Client.Memory.MemoryStringReadRequest right) -> bool +static CheatEngine.Client.Memory.MemoryStringWriteRequest.operator !=(CheatEngine.Client.Memory.MemoryStringWriteRequest left, CheatEngine.Client.Memory.MemoryStringWriteRequest right) -> bool +static CheatEngine.Client.Memory.MemoryStringWriteRequest.operator ==(CheatEngine.Client.Memory.MemoryStringWriteRequest left, CheatEngine.Client.Memory.MemoryStringWriteRequest right) -> bool +static CheatEngine.Client.Memory.MemoryWriteRequest.operator !=(CheatEngine.Client.Memory.MemoryWriteRequest left, CheatEngine.Client.Memory.MemoryWriteRequest right) -> bool +static CheatEngine.Client.Memory.MemoryWriteRequest.operator ==(CheatEngine.Client.Memory.MemoryWriteRequest left, CheatEngine.Client.Memory.MemoryWriteRequest right) -> bool +static CheatEngine.Client.Processes.LocalProcessEnumerationRequest.operator !=(CheatEngine.Client.Processes.LocalProcessEnumerationRequest left, CheatEngine.Client.Processes.LocalProcessEnumerationRequest right) -> bool +static CheatEngine.Client.Processes.LocalProcessEnumerationRequest.operator ==(CheatEngine.Client.Processes.LocalProcessEnumerationRequest left, CheatEngine.Client.Processes.LocalProcessEnumerationRequest right) -> bool +static CheatEngine.Client.Processes.LocalProcessId.operator !=(CheatEngine.Client.Processes.LocalProcessId left, CheatEngine.Client.Processes.LocalProcessId right) -> bool +static CheatEngine.Client.Processes.LocalProcessId.operator ==(CheatEngine.Client.Processes.LocalProcessId left, CheatEngine.Client.Processes.LocalProcessId right) -> bool +static CheatEngine.Client.Processes.LocalProcessSnapshot.operator !=(CheatEngine.Client.Processes.LocalProcessSnapshot left, CheatEngine.Client.Processes.LocalProcessSnapshot right) -> bool +static CheatEngine.Client.Processes.LocalProcessSnapshot.operator ==(CheatEngine.Client.Processes.LocalProcessSnapshot left, CheatEngine.Client.Processes.LocalProcessSnapshot right) -> bool +static CheatEngine.Client.Processes.ProcessSnapshot.operator !=(CheatEngine.Client.Processes.ProcessSnapshot left, CheatEngine.Client.Processes.ProcessSnapshot right) -> bool +static CheatEngine.Client.Processes.ProcessSnapshot.operator ==(CheatEngine.Client.Processes.ProcessSnapshot left, CheatEngine.Client.Processes.ProcessSnapshot right) -> bool +static CheatEngine.Client.Results.CheatEngineFailure.operator !=(CheatEngine.Client.Results.CheatEngineFailure left, CheatEngine.Client.Results.CheatEngineFailure right) -> bool +static CheatEngine.Client.Results.CheatEngineFailure.operator ==(CheatEngine.Client.Results.CheatEngineFailure left, CheatEngine.Client.Results.CheatEngineFailure right) -> bool +static CheatEngine.Client.Results.LeaseReleaseOutcome.operator !=(CheatEngine.Client.Results.LeaseReleaseOutcome left, CheatEngine.Client.Results.LeaseReleaseOutcome right) -> bool +static CheatEngine.Client.Results.LeaseReleaseOutcome.operator ==(CheatEngine.Client.Results.LeaseReleaseOutcome left, CheatEngine.Client.Results.LeaseReleaseOutcome right) -> bool +static CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.operator !=(CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo left, CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo right) -> bool +static CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.operator ==(CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo left, CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo right) -> bool +static CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot.operator !=(CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot left, CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot right) -> bool +static CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot.operator ==(CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot left, CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot right) -> bool +static CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.operator !=(CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo left, CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo right) -> bool +static CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.operator ==(CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo left, CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo right) -> bool +static CheatEngine.Client.Runtime.ClientCapabilities.Create(System.ReadOnlySpan entries) -> CheatEngine.Client.Runtime.ClientCapabilities! +static CheatEngine.Client.Runtime.ClientCapabilities.Empty.get -> CheatEngine.Client.Runtime.ClientCapabilities! +static CheatEngine.Client.Runtime.ClientCapabilityAvailability.operator !=(CheatEngine.Client.Runtime.ClientCapabilityAvailability left, CheatEngine.Client.Runtime.ClientCapabilityAvailability right) -> bool +static CheatEngine.Client.Runtime.ClientCapabilityAvailability.operator ==(CheatEngine.Client.Runtime.ClientCapabilityAvailability left, CheatEngine.Client.Runtime.ClientCapabilityAvailability right) -> bool +static CheatEngine.Client.Runtime.ClientCapabilityEvidence.operator !=(CheatEngine.Client.Runtime.ClientCapabilityEvidence left, CheatEngine.Client.Runtime.ClientCapabilityEvidence right) -> bool +static CheatEngine.Client.Runtime.ClientCapabilityEvidence.operator ==(CheatEngine.Client.Runtime.ClientCapabilityEvidence left, CheatEngine.Client.Runtime.ClientCapabilityEvidence right) -> bool +static CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate.operator !=(CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate left, CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate right) -> bool +static CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate.operator ==(CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate left, CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate right) -> bool +static CheatEngine.Client.Runtime.ClientCapabilityId.Allocations.get -> CheatEngine.Client.Runtime.ClientCapabilityId +static CheatEngine.Client.Runtime.ClientCapabilityId.Assembly.get -> CheatEngine.Client.Runtime.ClientCapabilityId +static CheatEngine.Client.Runtime.ClientCapabilityId.AutoAssemblerPatches.get -> CheatEngine.Client.Runtime.ClientCapabilityId +static CheatEngine.Client.Runtime.ClientCapabilityId.Inspection.get -> CheatEngine.Client.Runtime.ClientCapabilityId +static CheatEngine.Client.Runtime.ClientCapabilityId.PatternScanning.get -> CheatEngine.Client.Runtime.ClientCapabilityId +static CheatEngine.Client.Runtime.ClientCapabilityId.ProcessSelection.get -> CheatEngine.Client.Runtime.ClientCapabilityId +static CheatEngine.Client.Runtime.ClientCapabilityId.ProtectedLua.get -> CheatEngine.Client.Runtime.ClientCapabilityId +static CheatEngine.Client.Runtime.ClientCapabilityId.Tables.get -> CheatEngine.Client.Runtime.ClientCapabilityId +static CheatEngine.Client.Runtime.ClientCapabilityId.TypedMemory.get -> CheatEngine.Client.Runtime.ClientCapabilityId +static CheatEngine.Client.Runtime.ClientCapabilityId.UnsafeLuaExecution.get -> CheatEngine.Client.Runtime.ClientCapabilityId +static CheatEngine.Client.Runtime.ClientCapabilityId.ValueScanning.get -> CheatEngine.Client.Runtime.ClientCapabilityId +static CheatEngine.Client.Runtime.ClientCapabilityId.operator !=(CheatEngine.Client.Runtime.ClientCapabilityId left, CheatEngine.Client.Runtime.ClientCapabilityId right) -> bool +static CheatEngine.Client.Runtime.ClientCapabilityId.operator ==(CheatEngine.Client.Runtime.ClientCapabilityId left, CheatEngine.Client.Runtime.ClientCapabilityId right) -> bool +static CheatEngine.Client.Scanning.AobPattern.TryParse(string? value, out CheatEngine.Client.Scanning.AobPattern pattern) -> bool +static CheatEngine.Client.Scanning.AobPattern.operator !=(CheatEngine.Client.Scanning.AobPattern left, CheatEngine.Client.Scanning.AobPattern right) -> bool +static CheatEngine.Client.Scanning.AobPattern.operator ==(CheatEngine.Client.Scanning.AobPattern left, CheatEngine.Client.Scanning.AobPattern right) -> bool +static CheatEngine.Client.Scanning.AobScanRange.operator !=(CheatEngine.Client.Scanning.AobScanRange left, CheatEngine.Client.Scanning.AobScanRange right) -> bool +static CheatEngine.Client.Scanning.AobScanRange.operator ==(CheatEngine.Client.Scanning.AobScanRange left, CheatEngine.Client.Scanning.AobScanRange right) -> bool +static CheatEngine.Client.Scanning.AobScanRequest.operator !=(CheatEngine.Client.Scanning.AobScanRequest left, CheatEngine.Client.Scanning.AobScanRequest right) -> bool +static CheatEngine.Client.Scanning.AobScanRequest.operator ==(CheatEngine.Client.Scanning.AobScanRequest left, CheatEngine.Client.Scanning.AobScanRequest right) -> bool +static CheatEngine.Client.Scanning.PatternScanMetrics.operator !=(CheatEngine.Client.Scanning.PatternScanMetrics left, CheatEngine.Client.Scanning.PatternScanMetrics right) -> bool +static CheatEngine.Client.Scanning.PatternScanMetrics.operator ==(CheatEngine.Client.Scanning.PatternScanMetrics left, CheatEngine.Client.Scanning.PatternScanMetrics right) -> bool +static CheatEngine.Client.Scanning.ScanAlignment.AlignedTo(int divisor) -> CheatEngine.Client.Scanning.ScanAlignment +static CheatEngine.Client.Scanning.ScanAlignment.LastDigits(string! digits) -> CheatEngine.Client.Scanning.ScanAlignment +static CheatEngine.Client.Scanning.ScanAlignment.None.get -> CheatEngine.Client.Scanning.ScanAlignment +static CheatEngine.Client.Scanning.ScanAlignment.operator !=(CheatEngine.Client.Scanning.ScanAlignment left, CheatEngine.Client.Scanning.ScanAlignment right) -> bool +static CheatEngine.Client.Scanning.ScanAlignment.operator ==(CheatEngine.Client.Scanning.ScanAlignment left, CheatEngine.Client.Scanning.ScanAlignment right) -> bool +static CheatEngine.Client.Scanning.ScanProtectionFilter.operator !=(CheatEngine.Client.Scanning.ScanProtectionFilter left, CheatEngine.Client.Scanning.ScanProtectionFilter right) -> bool +static CheatEngine.Client.Scanning.ScanProtectionFilter.operator ==(CheatEngine.Client.Scanning.ScanProtectionFilter left, CheatEngine.Client.Scanning.ScanProtectionFilter right) -> bool +static CheatEngine.Client.Tables.MemoryRecordCollectionRequest.operator !=(CheatEngine.Client.Tables.MemoryRecordCollectionRequest left, CheatEngine.Client.Tables.MemoryRecordCollectionRequest right) -> bool +static CheatEngine.Client.Tables.MemoryRecordCollectionRequest.operator ==(CheatEngine.Client.Tables.MemoryRecordCollectionRequest left, CheatEngine.Client.Tables.MemoryRecordCollectionRequest right) -> bool +static CheatEngine.Client.Tables.MemoryRecordContentSnapshot.operator !=(CheatEngine.Client.Tables.MemoryRecordContentSnapshot left, CheatEngine.Client.Tables.MemoryRecordContentSnapshot right) -> bool +static CheatEngine.Client.Tables.MemoryRecordContentSnapshot.operator ==(CheatEngine.Client.Tables.MemoryRecordContentSnapshot left, CheatEngine.Client.Tables.MemoryRecordContentSnapshot right) -> bool +static CheatEngine.Client.Tables.MemoryRecordDefinition.operator !=(CheatEngine.Client.Tables.MemoryRecordDefinition left, CheatEngine.Client.Tables.MemoryRecordDefinition right) -> bool +static CheatEngine.Client.Tables.MemoryRecordDefinition.operator ==(CheatEngine.Client.Tables.MemoryRecordDefinition left, CheatEngine.Client.Tables.MemoryRecordDefinition right) -> bool +static CheatEngine.Client.Tables.MemoryRecordHierarchyRequest.operator !=(CheatEngine.Client.Tables.MemoryRecordHierarchyRequest left, CheatEngine.Client.Tables.MemoryRecordHierarchyRequest right) -> bool +static CheatEngine.Client.Tables.MemoryRecordHierarchyRequest.operator ==(CheatEngine.Client.Tables.MemoryRecordHierarchyRequest left, CheatEngine.Client.Tables.MemoryRecordHierarchyRequest right) -> bool +static CheatEngine.Client.Tables.MemoryRecordSearch.operator !=(CheatEngine.Client.Tables.MemoryRecordSearch left, CheatEngine.Client.Tables.MemoryRecordSearch right) -> bool +static CheatEngine.Client.Tables.MemoryRecordSearch.operator ==(CheatEngine.Client.Tables.MemoryRecordSearch left, CheatEngine.Client.Tables.MemoryRecordSearch right) -> bool +static CheatEngine.Client.Tables.MemoryRecordSnapshot.operator !=(CheatEngine.Client.Tables.MemoryRecordSnapshot left, CheatEngine.Client.Tables.MemoryRecordSnapshot right) -> bool +static CheatEngine.Client.Tables.MemoryRecordSnapshot.operator ==(CheatEngine.Client.Tables.MemoryRecordSnapshot left, CheatEngine.Client.Tables.MemoryRecordSnapshot right) -> bool +static CheatEngine.Client.Tables.MemoryRecordStateSnapshot.operator !=(CheatEngine.Client.Tables.MemoryRecordStateSnapshot left, CheatEngine.Client.Tables.MemoryRecordStateSnapshot right) -> bool +static CheatEngine.Client.Tables.MemoryRecordStateSnapshot.operator ==(CheatEngine.Client.Tables.MemoryRecordStateSnapshot left, CheatEngine.Client.Tables.MemoryRecordStateSnapshot right) -> bool +static CheatEngine.Client.Tables.MemoryRecordUpdate.operator !=(CheatEngine.Client.Tables.MemoryRecordUpdate left, CheatEngine.Client.Tables.MemoryRecordUpdate right) -> bool +static CheatEngine.Client.Tables.MemoryRecordUpdate.operator ==(CheatEngine.Client.Tables.MemoryRecordUpdate left, CheatEngine.Client.Tables.MemoryRecordUpdate right) -> bool +static CheatEngine.Client.Tables.TableLoadRequest.operator !=(CheatEngine.Client.Tables.TableLoadRequest left, CheatEngine.Client.Tables.TableLoadRequest right) -> bool +static CheatEngine.Client.Tables.TableLoadRequest.operator ==(CheatEngine.Client.Tables.TableLoadRequest left, CheatEngine.Client.Tables.TableLoadRequest right) -> bool +static CheatEngine.Client.Tables.TableSaveRequest.operator !=(CheatEngine.Client.Tables.TableSaveRequest left, CheatEngine.Client.Tables.TableSaveRequest right) -> bool +static CheatEngine.Client.Tables.TableSaveRequest.operator ==(CheatEngine.Client.Tables.TableSaveRequest left, CheatEngine.Client.Tables.TableSaveRequest right) -> bool +static CheatEngine.Client.Tables.TrustedTableFile.operator !=(CheatEngine.Client.Tables.TrustedTableFile left, CheatEngine.Client.Tables.TrustedTableFile right) -> bool +static CheatEngine.Client.Tables.TrustedTableFile.operator ==(CheatEngine.Client.Tables.TrustedTableFile left, CheatEngine.Client.Tables.TrustedTableFile right) -> bool +~[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanFirstRequest.Equals(object obj) -> bool +~[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanFirstRequest.ToString() -> string +~[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanMatch.Equals(object obj) -> bool +~[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanMatch.ToString() -> string +~[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanNextRequest.Equals(object obj) -> bool +~[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanNextRequest.ToString() -> string +~[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanReadRequest.Equals(object obj) -> bool +~[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanReadRequest.ToString() -> string +~[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanValue.Equals(object obj) -> bool +~[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanValue.ToString() -> string +~[CECLIENT5002]override CheatEngine.Client.Allocations.AllocationRequest.Equals(object obj) -> bool +~[CECLIENT5002]override CheatEngine.Client.Allocations.AllocationRequest.ToString() -> string +~[CECLIENT5003]override CheatEngine.Client.Assembly.AssemblyInstructionRequest.Equals(object obj) -> bool +~[CECLIENT5003]override CheatEngine.Client.Assembly.AssemblyInstructionRequest.ToString() -> string +~[CECLIENT5004]override CheatEngine.Client.Assembly.AutoAssemblerCheckResult.Equals(object obj) -> bool +~[CECLIENT5004]override CheatEngine.Client.Assembly.AutoAssemblerScript.Equals(object obj) -> bool +~[CECLIENT5004]override CheatEngine.Client.Assembly.AutoAssemblerScript.ToString() -> string +~override CheatEngine.Client.Inspection.InspectionCollectionRequest.Equals(object obj) -> bool +~override CheatEngine.Client.Inspection.InspectionCollectionRequest.ToString() -> string +~override CheatEngine.Client.Inspection.SymbolRegistration.Equals(object obj) -> bool +~override CheatEngine.Client.Inspection.SymbolRegistration.ToString() -> string +~override CheatEngine.Client.Lua.LuaExportDescriptor.Equals(object obj) -> bool +~override CheatEngine.Client.Lua.LuaExportDescriptor.ToString() -> string +~override CheatEngine.Client.Lua.LuaScript.Equals(object obj) -> bool +~override CheatEngine.Client.Lua.LuaScript.ToString() -> string +~override CheatEngine.Client.Memory.MemoryBytesReadRequest.Equals(object obj) -> bool +~override CheatEngine.Client.Memory.MemoryBytesReadRequest.ToString() -> string +~override CheatEngine.Client.Memory.MemoryReadRequest.Equals(object obj) -> bool +~override CheatEngine.Client.Memory.MemoryReadRequest.ToString() -> string +~override CheatEngine.Client.Memory.MemoryStringReadRequest.Equals(object obj) -> bool +~override CheatEngine.Client.Memory.MemoryStringReadRequest.ToString() -> string +~override CheatEngine.Client.Memory.MemoryStringWriteRequest.Equals(object obj) -> bool +~override CheatEngine.Client.Memory.MemoryStringWriteRequest.ToString() -> string +~override CheatEngine.Client.Memory.MemoryWriteRequest.Equals(object obj) -> bool +~override CheatEngine.Client.Memory.MemoryWriteRequest.ToString() -> string +~override CheatEngine.Client.Processes.LocalProcessEnumerationRequest.Equals(object obj) -> bool +~override CheatEngine.Client.Processes.LocalProcessEnumerationRequest.ToString() -> string +~override CheatEngine.Client.Processes.LocalProcessId.Equals(object obj) -> bool +~override CheatEngine.Client.Processes.LocalProcessId.ToString() -> string +~override CheatEngine.Client.Processes.LocalProcessSnapshot.Equals(object obj) -> bool +~override CheatEngine.Client.Processes.LocalProcessSnapshot.ToString() -> string +~override CheatEngine.Client.Processes.ProcessSnapshot.Equals(object obj) -> bool +~override CheatEngine.Client.Processes.ProcessSnapshot.ToString() -> string +~override CheatEngine.Client.Results.CheatEngineFailure.Equals(object obj) -> bool +~override CheatEngine.Client.Results.CheatEngineFailure.ToString() -> string +~override CheatEngine.Client.Results.LeaseReleaseOutcome.Equals(object obj) -> bool +~override CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.Equals(object obj) -> bool +~override CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.ToString() -> string +~override CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot.Equals(object obj) -> bool +~override CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot.ToString() -> string +~override CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.Equals(object obj) -> bool +~override CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.ToString() -> string +~override CheatEngine.Client.Runtime.ClientCapabilityAvailability.Equals(object obj) -> bool +~override CheatEngine.Client.Runtime.ClientCapabilityAvailability.ToString() -> string +~override CheatEngine.Client.Runtime.ClientCapabilityEvidence.Equals(object obj) -> bool +~override CheatEngine.Client.Runtime.ClientCapabilityEvidence.ToString() -> string +~override CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate.Equals(object obj) -> bool +~override CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate.ToString() -> string +~override CheatEngine.Client.Scanning.AobPattern.Equals(object obj) -> bool +~override CheatEngine.Client.Scanning.AobScanRange.Equals(object obj) -> bool +~override CheatEngine.Client.Scanning.AobScanRange.ToString() -> string +~override CheatEngine.Client.Scanning.AobScanRequest.Equals(object obj) -> bool +~override CheatEngine.Client.Scanning.AobScanRequest.ToString() -> string +~override CheatEngine.Client.Scanning.PatternScanMetrics.Equals(object obj) -> bool +~override CheatEngine.Client.Scanning.PatternScanMetrics.ToString() -> string +~override CheatEngine.Client.Scanning.ScanAlignment.Equals(object obj) -> bool +~override CheatEngine.Client.Scanning.ScanAlignment.ToString() -> string +~override CheatEngine.Client.Scanning.ScanProtectionFilter.Equals(object obj) -> bool +~override CheatEngine.Client.Scanning.ScanProtectionFilter.ToString() -> string +~override CheatEngine.Client.Tables.MemoryRecordCollectionRequest.Equals(object obj) -> bool +~override CheatEngine.Client.Tables.MemoryRecordCollectionRequest.ToString() -> string +~override CheatEngine.Client.Tables.MemoryRecordContentSnapshot.Equals(object obj) -> bool +~override CheatEngine.Client.Tables.MemoryRecordContentSnapshot.ToString() -> string +~override CheatEngine.Client.Tables.MemoryRecordDefinition.Equals(object obj) -> bool +~override CheatEngine.Client.Tables.MemoryRecordDefinition.ToString() -> string +~override CheatEngine.Client.Tables.MemoryRecordHierarchyRequest.Equals(object obj) -> bool +~override CheatEngine.Client.Tables.MemoryRecordHierarchyRequest.ToString() -> string +~override CheatEngine.Client.Tables.MemoryRecordSearch.Equals(object obj) -> bool +~override CheatEngine.Client.Tables.MemoryRecordSearch.ToString() -> string +~override CheatEngine.Client.Tables.MemoryRecordSnapshot.Equals(object obj) -> bool +~override CheatEngine.Client.Tables.MemoryRecordSnapshot.ToString() -> string +~override CheatEngine.Client.Tables.MemoryRecordStateSnapshot.Equals(object obj) -> bool +~override CheatEngine.Client.Tables.MemoryRecordStateSnapshot.ToString() -> string +~override CheatEngine.Client.Tables.MemoryRecordUpdate.Equals(object obj) -> bool +~override CheatEngine.Client.Tables.MemoryRecordUpdate.ToString() -> string +~override CheatEngine.Client.Tables.TableLoadRequest.Equals(object obj) -> bool +~override CheatEngine.Client.Tables.TableLoadRequest.ToString() -> string +~override CheatEngine.Client.Tables.TableSaveRequest.Equals(object obj) -> bool +~override CheatEngine.Client.Tables.TableSaveRequest.ToString() -> string +~override CheatEngine.Client.Tables.TrustedTableFile.Equals(object obj) -> bool +~override CheatEngine.Client.Tables.TrustedTableFile.ToString() -> string diff --git a/libs/CheatEngine.Client.Abstractions/PublicAPI.Unshipped.txt b/libs/CheatEngine.Client.Abstractions/PublicAPI.Unshipped.txt index 38c900e..8f5a1a9 100644 --- a/libs/CheatEngine.Client.Abstractions/PublicAPI.Unshipped.txt +++ b/libs/CheatEngine.Client.Abstractions/PublicAPI.Unshipped.txt @@ -1,1178 +1,17 @@ #nullable enable -CheatEngine.Client.Dispatching.ICheatEngineDispatcher -CheatEngine.Client.Dispatching.ICheatEngineDispatcher.Invoke(System.Action! callback) -> void -CheatEngine.Client.Dispatching.ICheatEngineDispatcher.Invoke(System.Action! callback, System.Threading.CancellationToken cancellationToken) -> void -CheatEngine.Client.Dispatching.ICheatEngineDispatcher.Invoke(System.Func! callback) -> T -CheatEngine.Client.Dispatching.ICheatEngineDispatcher.Invoke(System.Func! callback, System.Threading.CancellationToken cancellationToken) -> T -CheatEngine.Client.Dispatching.ICheatEngineDispatcher.IsMainThread.get -> bool -CheatEngine.Client.Dispatching.ICheatEngineDispatcher.TryInvoke(System.Action! callback, out CheatEngine.Client.Results.CheatEngineFailure failure) -> bool -CheatEngine.Client.Dispatching.ICheatEngineDispatcher.TryInvoke(System.Action! callback, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken) -> bool -CheatEngine.Client.Dispatching.ICheatEngineDispatcher.TryInvoke(System.Func! callback, out T result, out CheatEngine.Client.Results.CheatEngineFailure failure) -> bool -CheatEngine.Client.Dispatching.ICheatEngineDispatcher.TryInvoke(System.Func! callback, out T result, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken) -> bool -CheatEngine.Client.ICheatEngineClient -CheatEngine.Client.ICheatEngineClient.Dispatcher.get -> CheatEngine.Client.Dispatching.ICheatEngineDispatcher! -CheatEngine.Client.ICheatEngineClient.Epoch.get -> long -CheatEngine.Client.ICheatEngineClient.Inspection.get -> CheatEngine.Client.Inspection.IInspectionClient! -CheatEngine.Client.ICheatEngineClient.Lua.get -> CheatEngine.Client.Lua.ILuaClient! -CheatEngine.Client.ICheatEngineClient.Memory.get -> CheatEngine.Client.Memory.IMemoryClient! -CheatEngine.Client.ICheatEngineClient.Patterns.get -> CheatEngine.Client.Scanning.IPatternScanner! -CheatEngine.Client.ICheatEngineClient.Processes.get -> CheatEngine.Client.Processes.IProcessClient! -CheatEngine.Client.ICheatEngineClient.Runtime.get -> CheatEngine.Client.Runtime.ICheatEngineRuntime! -CheatEngine.Client.ICheatEngineClient.Stopping.get -> System.Threading.CancellationToken -CheatEngine.Client.ICheatEngineClient.Tables.get -> CheatEngine.Client.Tables.ITableClient! -CheatEngine.Client.ICheatEngineLease -CheatEngine.Client.ICheatEngineLease.IsReleased.get -> bool -CheatEngine.Client.ICheatEngineLease.LastReleaseOutcome.get -> CheatEngine.Client.Results.LeaseReleaseOutcome? -CheatEngine.Client.ICheatEngineLease.Release() -> CheatEngine.Client.Results.LeaseReleaseOutcome -CheatEngine.Client.ICheatEngineLease.RequiresManualRecovery.get -> bool -CheatEngine.Client.Inspection.AddressResolutionMode -CheatEngine.Client.Inspection.AddressResolutionMode.Default = 0 -> CheatEngine.Client.Inspection.AddressResolutionMode -CheatEngine.Client.Inspection.AddressResolutionMode.Shallow = 1 -> CheatEngine.Client.Inspection.AddressResolutionMode -CheatEngine.Client.Inspection.IInspectionClient -CheatEngine.Client.Inspection.IInspectionClient.GetMemoryRegion(CheatEngine.SDK.Engine.Values.Address address, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.SDK.Engine.Inspection.MemoryRegionInfo -CheatEngine.Client.Inspection.IInspectionClient.GetMemoryRegions(CheatEngine.Client.Inspection.InspectionCollectionRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Immutable.ImmutableArray -CheatEngine.Client.Inspection.IInspectionClient.GetModuleSections(CheatEngine.SDK.Engine.Inspection.ModuleName moduleName, CheatEngine.Client.Inspection.InspectionCollectionRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Immutable.ImmutableArray -CheatEngine.Client.Inspection.IInspectionClient.GetModules(CheatEngine.Client.Inspection.InspectionCollectionRequest request, CheatEngine.SDK.Engine.Inspection.TargetProcessId? processId = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Immutable.ImmutableArray -CheatEngine.Client.Inspection.IInspectionClient.GetSymbol(CheatEngine.SDK.Engine.Inspection.SymbolExpression expression, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.SDK.Engine.Inspection.SymbolInfo -CheatEngine.Client.Inspection.IInspectionClient.RegisterSymbol(CheatEngine.Client.Inspection.SymbolRegistration registration, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Inspection.ISymbolRegistrationLease! -CheatEngine.Client.Inspection.IInspectionClient.ResolveAddress(CheatEngine.SDK.Engine.Inspection.SymbolExpression expression, CheatEngine.Client.Inspection.AddressResolutionMode mode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.SDK.Engine.Values.Address -CheatEngine.Client.Inspection.IInspectionClient.ResolveName(CheatEngine.SDK.Engine.Values.Address address, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> string! -CheatEngine.Client.Inspection.IInspectionClient.TryGetMemoryRegion(CheatEngine.SDK.Engine.Values.Address address, out CheatEngine.SDK.Engine.Inspection.MemoryRegionInfo region, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Inspection.IInspectionClient.TryGetMemoryRegions(CheatEngine.Client.Inspection.InspectionCollectionRequest request, out System.Collections.Immutable.ImmutableArray regions, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Inspection.IInspectionClient.TryGetModuleSections(CheatEngine.SDK.Engine.Inspection.ModuleName moduleName, CheatEngine.Client.Inspection.InspectionCollectionRequest request, out System.Collections.Immutable.ImmutableArray sections, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Inspection.IInspectionClient.TryGetModules(CheatEngine.Client.Inspection.InspectionCollectionRequest request, CheatEngine.SDK.Engine.Inspection.TargetProcessId? processId, out System.Collections.Immutable.ImmutableArray modules, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Inspection.IInspectionClient.TryGetSymbol(CheatEngine.SDK.Engine.Inspection.SymbolExpression expression, out CheatEngine.SDK.Engine.Inspection.SymbolInfo symbol, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Inspection.IInspectionClient.TryRegisterSymbol(CheatEngine.Client.Inspection.SymbolRegistration registration, out CheatEngine.Client.Inspection.ISymbolRegistrationLease? lease, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Inspection.IInspectionClient.TryResolveAddress(CheatEngine.SDK.Engine.Inspection.SymbolExpression expression, CheatEngine.Client.Inspection.AddressResolutionMode mode, out CheatEngine.SDK.Engine.Values.Address address, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Inspection.IInspectionClient.TryResolveName(CheatEngine.SDK.Engine.Values.Address address, out string? name, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Inspection.ISymbolRegistrationLease -CheatEngine.Client.Inspection.ISymbolRegistrationLease.Address.get -> CheatEngine.SDK.Engine.Values.Address -CheatEngine.Client.Inspection.ISymbolRegistrationLease.Name.get -> string! -CheatEngine.Client.Inspection.InspectionCollectionRequest -CheatEngine.Client.Inspection.InspectionCollectionRequest.Equals(CheatEngine.Client.Inspection.InspectionCollectionRequest other) -> bool -CheatEngine.Client.Inspection.InspectionCollectionRequest.InspectionCollectionRequest() -> void -CheatEngine.Client.Inspection.InspectionCollectionRequest.InspectionCollectionRequest(int maximumItems) -> void -CheatEngine.Client.Inspection.InspectionCollectionRequest.MaximumItems.get -> int -CheatEngine.Client.Inspection.SymbolRegistration -CheatEngine.Client.Inspection.SymbolRegistration.Address.get -> CheatEngine.SDK.Engine.Values.Address -CheatEngine.Client.Inspection.SymbolRegistration.DoNotSave.get -> bool -CheatEngine.Client.Inspection.SymbolRegistration.Equals(CheatEngine.Client.Inspection.SymbolRegistration other) -> bool -CheatEngine.Client.Inspection.SymbolRegistration.Name.get -> string! -CheatEngine.Client.Inspection.SymbolRegistration.SymbolRegistration() -> void -CheatEngine.Client.Inspection.SymbolRegistration.SymbolRegistration(string! name, CheatEngine.SDK.Engine.Values.Address address, bool doNotSave = true) -> void -CheatEngine.Client.Lua.CheatEngineLuaModuleAttribute -CheatEngine.Client.Lua.CheatEngineLuaModuleAttribute.BindingsType.get -> System.Type! -CheatEngine.Client.Lua.CheatEngineLuaModuleAttribute.CheatEngineLuaModuleAttribute(System.Type! bindingsType, string? name = null) -> void -CheatEngine.Client.Lua.CheatEngineLuaModuleAttribute.Name.get -> string? -CheatEngine.Client.Lua.CheatEngineLuaOperationAttribute -CheatEngine.Client.Lua.CheatEngineLuaOperationAttribute.CheatEngineLuaOperationAttribute() -> void -CheatEngine.Client.Lua.CheatEngineLuaOperationAttribute.CheatEngineLuaOperationAttribute(System.Type! mapperType) -> void -CheatEngine.Client.Lua.CheatEngineLuaOperationAttribute.MapperType.get -> System.Type? -CheatEngine.Client.Lua.ILuaClient -CheatEngine.Client.Lua.ILuaClient.Execute(in TOperation operation, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> TResult -CheatEngine.Client.Lua.ILuaClient.RegisterModule(CheatEngine.Client.Lua.ILuaModule! luaModule, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Lua.ILuaModuleLease! -CheatEngine.Client.Lua.ILuaClient.TryExecute(in TOperation operation, out TResult result, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Lua.ILuaClient.TryRegisterModule(CheatEngine.Client.Lua.ILuaModule! luaModule, out CheatEngine.Client.Lua.ILuaModuleLease? lease, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Lua.ILuaExecutionContext -CheatEngine.Client.Lua.ILuaExecutionContext.Epoch.get -> long -CheatEngine.Client.Lua.ILuaExecutionContext.IsActive.get -> bool -CheatEngine.Client.Lua.ILuaExecutionContext.ThrowIfExpired() -> void -CheatEngine.Client.Lua.ILuaModule -CheatEngine.Client.Lua.ILuaModule.Descriptor.get -> CheatEngine.Client.Lua.LuaModuleDescriptor -CheatEngine.Client.Lua.ILuaModule.Register() -> void -CheatEngine.Client.Lua.ILuaModule.Unregister() -> CheatEngine.Client.Lua.LuaModuleReleaseOutcome! -CheatEngine.Client.Lua.ILuaModuleLease -CheatEngine.Client.Lua.ILuaModuleLease.LastModuleReleaseOutcome.get -> CheatEngine.Client.Lua.LuaModuleReleaseOutcome? -CheatEngine.Client.Lua.ILuaOperation -CheatEngine.Client.Lua.ILuaOperation.TryExecute(CheatEngine.Client.Lua.ILuaExecutionContext! context, out TResult result, out CheatEngine.Client.Results.CheatEngineFailure failure) -> bool -CheatEngine.Client.Lua.ILuaResultMapper -CheatEngine.Client.Lua.ILuaResultMapper.Map(TSource source) -> TResult -CheatEngine.Client.Lua.IUnsafeLuaClient -CheatEngine.Client.Lua.IUnsafeLuaClient.Execute(CheatEngine.Client.Lua.LuaScript script, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void -CheatEngine.Client.Lua.IUnsafeLuaClient.TryExecute(CheatEngine.Client.Lua.LuaScript script, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Lua.LuaExportDescriptor -CheatEngine.Client.Lua.LuaExportDescriptor.Equals(CheatEngine.Client.Lua.LuaExportDescriptor other) -> bool -CheatEngine.Client.Lua.LuaExportDescriptor.LuaExportDescriptor() -> void -CheatEngine.Client.Lua.LuaExportDescriptor.LuaExportDescriptor(string! name) -> void -CheatEngine.Client.Lua.LuaExportDescriptor.Name.get -> string! -CheatEngine.Client.Lua.LuaModuleDescriptor -CheatEngine.Client.Lua.LuaModuleDescriptor.Exports.get -> System.Collections.Immutable.ImmutableArray -CheatEngine.Client.Lua.LuaModuleDescriptor.LuaModuleDescriptor() -> void -CheatEngine.Client.Lua.LuaModuleDescriptor.LuaModuleDescriptor(string! name, System.Collections.Immutable.ImmutableArray exports) -> void -CheatEngine.Client.Lua.LuaModuleDescriptor.Name.get -> string! -CheatEngine.Client.Lua.LuaModuleReleaseOutcome -CheatEngine.Client.Lua.LuaModuleReleaseOutcome.FailedExports.get -> System.Collections.Immutable.ImmutableArray -CheatEngine.Client.Lua.LuaModuleReleaseOutcome.IsComplete.get -> bool -CheatEngine.Client.Lua.LuaModuleReleaseOutcome.Kind.get -> CheatEngine.Client.Results.LeaseReleaseKind -CheatEngine.Client.Lua.LuaModuleReleaseOutcome.ModuleName.get -> string! -CheatEngine.Client.Lua.LuaModuleReleaseOutcome.RemainingCount.get -> int -CheatEngine.Client.Lua.LuaModuleReleaseOutcome.RemovedCount.get -> int -CheatEngine.Client.Lua.LuaModuleReleaseOutcome.ReplacementCount.get -> int -CheatEngine.Client.Lua.LuaModuleReleaseOutcome.RestoredCount.get -> int -CheatEngine.Client.Lua.LuaScript -CheatEngine.Client.Lua.LuaScript.ChunkName.get -> string? -CheatEngine.Client.Lua.LuaScript.Equals(CheatEngine.Client.Lua.LuaScript other) -> bool -CheatEngine.Client.Lua.LuaScript.LuaScript() -> void -CheatEngine.Client.Lua.LuaScript.LuaScript(string! source, string? chunkName = null) -> void -CheatEngine.Client.Lua.LuaScript.Source.get -> string! -CheatEngine.Client.Memory.IMemoryClient -CheatEngine.Client.Memory.IMemoryClient.Read(CheatEngine.Client.Memory.MemoryReadRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> T -CheatEngine.Client.Memory.IMemoryClient.ReadBytes(CheatEngine.Client.Memory.MemoryBytesReadRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Immutable.ImmutableArray -CheatEngine.Client.Memory.IMemoryClient.ReadBytesDetailed(CheatEngine.Client.Memory.MemoryBytesReadRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Memory.MemoryBytesReadOutcome! -CheatEngine.Client.Memory.IMemoryClient.ReadPrimitive(CheatEngine.SDK.Engine.Values.Address address, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> T -CheatEngine.Client.Memory.IMemoryClient.ReadPrimitiveBatch(CheatEngine.Client.Memory.MemoryPrimitiveBatchReadRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Immutable.ImmutableArray -CheatEngine.Client.Memory.IMemoryClient.ReadPrimitiveBatchDetailed(CheatEngine.Client.Memory.MemoryPrimitiveBatchReadRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Memory.MemoryPrimitiveBatchReadOutcome! -CheatEngine.Client.Memory.IMemoryClient.ReadString(CheatEngine.Client.Memory.MemoryStringReadRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> string! -CheatEngine.Client.Memory.IMemoryClient.ResolvePointerChain(CheatEngine.Client.Memory.PointerChainRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.SDK.Engine.Values.Address -CheatEngine.Client.Memory.IMemoryClient.TryRead(CheatEngine.Client.Memory.MemoryReadRequest request, out T value, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Memory.IMemoryClient.TryReadBytes(CheatEngine.Client.Memory.MemoryBytesReadRequest request, out System.Collections.Immutable.ImmutableArray bytes, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Memory.IMemoryClient.TryReadPrimitive(CheatEngine.SDK.Engine.Values.Address address, out T value, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Memory.IMemoryClient.TryReadPrimitiveBatch(CheatEngine.Client.Memory.MemoryPrimitiveBatchReadRequest request, out System.Collections.Immutable.ImmutableArray values, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Memory.IMemoryClient.TryReadString(CheatEngine.Client.Memory.MemoryStringReadRequest request, out string? value, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Memory.IMemoryClient.TryResolvePointerChain(CheatEngine.Client.Memory.PointerChainRequest request, out CheatEngine.SDK.Engine.Values.Address address, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Memory.IMemoryClient.TryWrite(CheatEngine.Client.Memory.MemoryWriteRequest request, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Memory.IMemoryClient.TryWriteBytes(CheatEngine.Client.Memory.MemoryBytesWriteRequest request, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Memory.IMemoryClient.TryWritePrimitive(CheatEngine.SDK.Engine.Values.Address address, T value, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Memory.IMemoryClient.TryWritePrimitiveBatch(CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteRequest request, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Memory.IMemoryClient.TryWriteString(CheatEngine.Client.Memory.MemoryStringWriteRequest request, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Memory.IMemoryClient.Write(CheatEngine.Client.Memory.MemoryWriteRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void -CheatEngine.Client.Memory.IMemoryClient.WriteBytes(CheatEngine.Client.Memory.MemoryBytesWriteRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void -CheatEngine.Client.Memory.IMemoryClient.WritePrimitive(CheatEngine.SDK.Engine.Values.Address address, T value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void -CheatEngine.Client.Memory.IMemoryClient.WritePrimitiveBatch(CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void -CheatEngine.Client.Memory.IMemoryClient.WritePrimitiveBatchDetailed(CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteOutcome! -CheatEngine.Client.Memory.IMemoryClient.WriteString(CheatEngine.Client.Memory.MemoryStringWriteRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void -CheatEngine.Client.Memory.IMemoryCodec -CheatEngine.Client.Memory.IMemoryCodec.TryRead(CheatEngine.Client.Memory.IMemoryReadContext! context, CheatEngine.SDK.Engine.Values.Address address, out T value, out CheatEngine.Client.Results.CheatEngineFailure failure) -> bool -CheatEngine.Client.Memory.IMemoryCodec.TryWrite(CheatEngine.Client.Memory.IMemoryWriteContext! context, CheatEngine.SDK.Engine.Values.Address address, in T value, out CheatEngine.Client.Results.CheatEngineFailure failure) -> bool -CheatEngine.Client.Memory.IMemoryReadContext -CheatEngine.Client.Memory.IMemoryReadContext.Bitness.get -> CheatEngine.SDK.Engine.Runtime.PointerSize -CheatEngine.Client.Memory.IMemoryReadContext.ConfiguredPointerSize.get -> CheatEngine.SDK.Engine.Runtime.PointerSize -CheatEngine.Client.Memory.IMemoryReadContext.ConfiguredPointerSizeBytes.get -> int? -CheatEngine.Client.Memory.IMemoryReadContext.ConfiguredPointerSizeDiffersFromBitness.get -> bool? -CheatEngine.Client.Memory.IMemoryReadContext.TryReadBytes(CheatEngine.SDK.Engine.Values.Address address, System.Span destination, out CheatEngine.Client.Results.CheatEngineFailure failure) -> bool -CheatEngine.Client.Memory.IMemoryWriteContext -CheatEngine.Client.Memory.IMemoryWriteContext.Bitness.get -> CheatEngine.SDK.Engine.Runtime.PointerSize -CheatEngine.Client.Memory.IMemoryWriteContext.ConfiguredPointerSize.get -> CheatEngine.SDK.Engine.Runtime.PointerSize -CheatEngine.Client.Memory.IMemoryWriteContext.ConfiguredPointerSizeBytes.get -> int? -CheatEngine.Client.Memory.IMemoryWriteContext.ConfiguredPointerSizeDiffersFromBitness.get -> bool? -CheatEngine.Client.Memory.IMemoryWriteContext.TryWriteBytes(CheatEngine.SDK.Engine.Values.Address address, System.ReadOnlySpan source, out CheatEngine.Client.Results.CheatEngineFailure failure) -> bool -CheatEngine.Client.Memory.MemoryAddressValue -CheatEngine.Client.Memory.MemoryAddressValue.Address.get -> CheatEngine.SDK.Engine.Values.Address -CheatEngine.Client.Memory.MemoryAddressValue.MemoryAddressValue() -> void -CheatEngine.Client.Memory.MemoryAddressValue.MemoryAddressValue(CheatEngine.SDK.Engine.Values.Address address, T value) -> void -CheatEngine.Client.Memory.MemoryAddressValue.Value.get -> T -CheatEngine.Client.Memory.MemoryBatchLimits -CheatEngine.Client.Memory.MemoryBatchWriteEffectState -CheatEngine.Client.Memory.MemoryBatchWriteEffectState.Completed = 3 -> CheatEngine.Client.Memory.MemoryBatchWriteEffectState -CheatEngine.Client.Memory.MemoryBatchWriteEffectState.NotStarted = 1 -> CheatEngine.Client.Memory.MemoryBatchWriteEffectState -CheatEngine.Client.Memory.MemoryBatchWriteEffectState.Partial = 2 -> CheatEngine.Client.Memory.MemoryBatchWriteEffectState -CheatEngine.Client.Memory.MemoryBatchWriteEffectState.Unknown = 0 -> CheatEngine.Client.Memory.MemoryBatchWriteEffectState -CheatEngine.Client.Memory.MemoryBytesReadOutcome -CheatEngine.Client.Memory.MemoryBytesReadOutcome.Bytes.get -> System.Collections.Immutable.ImmutableArray -CheatEngine.Client.Memory.MemoryBytesReadOutcome.ConfirmedLength.get -> int -CheatEngine.Client.Memory.MemoryBytesReadOutcome.Failure.get -> CheatEngine.Client.Results.CheatEngineFailure? -CheatEngine.Client.Memory.MemoryBytesReadOutcome.IsSuccess.get -> bool -CheatEngine.Client.Memory.MemoryBytesReadOutcome.MemoryBytesReadOutcome(int requestedLength, System.Collections.Immutable.ImmutableArray bytes, CheatEngine.Client.Results.CheatEngineFailure? failure) -> void -CheatEngine.Client.Memory.MemoryBytesReadOutcome.RequestedLength.get -> int -CheatEngine.Client.Memory.MemoryBytesReadRequest -CheatEngine.Client.Memory.MemoryBytesReadRequest.Address.get -> CheatEngine.SDK.Engine.Values.Address -CheatEngine.Client.Memory.MemoryBytesReadRequest.Equals(CheatEngine.Client.Memory.MemoryBytesReadRequest other) -> bool -CheatEngine.Client.Memory.MemoryBytesReadRequest.Length.get -> int -CheatEngine.Client.Memory.MemoryBytesReadRequest.MemoryBytesReadRequest() -> void -CheatEngine.Client.Memory.MemoryBytesReadRequest.MemoryBytesReadRequest(CheatEngine.SDK.Engine.Values.Address address, int length) -> void -CheatEngine.Client.Memory.MemoryBytesWriteRequest -CheatEngine.Client.Memory.MemoryBytesWriteRequest.Address.get -> CheatEngine.SDK.Engine.Values.Address -CheatEngine.Client.Memory.MemoryBytesWriteRequest.Bytes.get -> System.Collections.Immutable.ImmutableArray -CheatEngine.Client.Memory.MemoryBytesWriteRequest.MemoryBytesWriteRequest() -> void -CheatEngine.Client.Memory.MemoryBytesWriteRequest.MemoryBytesWriteRequest(CheatEngine.SDK.Engine.Values.Address address, System.ReadOnlySpan bytes) -> void -CheatEngine.Client.Memory.MemoryPrimitiveBatchReadOutcome -CheatEngine.Client.Memory.MemoryPrimitiveBatchReadOutcome.CompletedCount.get -> int -CheatEngine.Client.Memory.MemoryPrimitiveBatchReadOutcome.FailedIndex.get -> int? -CheatEngine.Client.Memory.MemoryPrimitiveBatchReadOutcome.Failure.get -> CheatEngine.Client.Results.CheatEngineFailure? -CheatEngine.Client.Memory.MemoryPrimitiveBatchReadOutcome.IsSuccess.get -> bool -CheatEngine.Client.Memory.MemoryPrimitiveBatchReadOutcome.MemoryPrimitiveBatchReadOutcome(int requestedCount, System.ReadOnlySpan values, int? failedIndex, CheatEngine.Client.Results.CheatEngineFailure? failure) -> void -CheatEngine.Client.Memory.MemoryPrimitiveBatchReadOutcome.RequestedCount.get -> int -CheatEngine.Client.Memory.MemoryPrimitiveBatchReadOutcome.Values.get -> System.Collections.Immutable.ImmutableArray -CheatEngine.Client.Memory.MemoryPrimitiveBatchReadRequest -CheatEngine.Client.Memory.MemoryPrimitiveBatchReadRequest.Addresses.get -> System.Collections.Immutable.ImmutableArray -CheatEngine.Client.Memory.MemoryPrimitiveBatchReadRequest.MemoryPrimitiveBatchReadRequest() -> void -CheatEngine.Client.Memory.MemoryPrimitiveBatchReadRequest.MemoryPrimitiveBatchReadRequest(System.ReadOnlySpan addresses) -> void -CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteOutcome -CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteOutcome.CompletedCount.get -> int -CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteOutcome.EffectState.get -> CheatEngine.Client.Memory.MemoryBatchWriteEffectState -CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteOutcome.FailedIndex.get -> int? -CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteOutcome.Failure.get -> CheatEngine.Client.Results.CheatEngineFailure? -CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteOutcome.IsSuccess.get -> bool -CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteOutcome.MemoryPrimitiveBatchWriteOutcome(int requestedCount, int completedCount, int? failedIndex, CheatEngine.Client.Results.CheatEngineFailure? failure, CheatEngine.Client.Memory.MemoryBatchWriteEffectState effectState) -> void -CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteOutcome.RequestedCount.get -> int -CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteRequest -CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteRequest.MemoryPrimitiveBatchWriteRequest() -> void -CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteRequest.MemoryPrimitiveBatchWriteRequest(System.ReadOnlySpan> values) -> void -CheatEngine.Client.Memory.MemoryPrimitiveBatchWriteRequest.Values.get -> System.Collections.Immutable.ImmutableArray> -CheatEngine.Client.Memory.MemoryReadRequest -CheatEngine.Client.Memory.MemoryReadRequest.Address.get -> CheatEngine.SDK.Engine.Values.Address -CheatEngine.Client.Memory.MemoryReadRequest.Codec.get -> CheatEngine.Client.Memory.IMemoryCodec! -CheatEngine.Client.Memory.MemoryReadRequest.Equals(CheatEngine.Client.Memory.MemoryReadRequest other) -> bool -CheatEngine.Client.Memory.MemoryReadRequest.MemoryReadRequest() -> void -CheatEngine.Client.Memory.MemoryReadRequest.MemoryReadRequest(CheatEngine.SDK.Engine.Values.Address address, CheatEngine.Client.Memory.IMemoryCodec! codec) -> void -CheatEngine.Client.Memory.MemoryResourceLimits -CheatEngine.Client.Memory.MemoryResourceLimits.MaximumBatchOperationCount.get -> int -CheatEngine.Client.Memory.MemoryResourceLimits.MaximumBatchOperationCount.set -> void -CheatEngine.Client.Memory.MemoryResourceLimits.MaximumBatchPayloadBytes.get -> int -CheatEngine.Client.Memory.MemoryResourceLimits.MaximumBatchPayloadBytes.set -> void -CheatEngine.Client.Memory.MemoryResourceLimits.MaximumReadBytes.get -> int -CheatEngine.Client.Memory.MemoryResourceLimits.MaximumReadBytes.set -> void -CheatEngine.Client.Memory.MemoryResourceLimits.MaximumStringBytes.get -> int -CheatEngine.Client.Memory.MemoryResourceLimits.MaximumStringBytes.set -> void -CheatEngine.Client.Memory.MemoryResourceLimits.MaximumWriteBytes.get -> int -CheatEngine.Client.Memory.MemoryResourceLimits.MaximumWriteBytes.set -> void -CheatEngine.Client.Memory.MemoryResourceLimits.MemoryResourceLimits() -> void -CheatEngine.Client.Memory.MemoryResourceLimits.MemoryResourceLimits(int maximumReadBytes, int maximumWriteBytes, int maximumStringBytes, int maximumBatchPayloadBytes, int maximumBatchOperationCount) -> void -CheatEngine.Client.Memory.MemoryStringEncoding -CheatEngine.Client.Memory.MemoryStringEncoding.Utf16 = 1 -> CheatEngine.Client.Memory.MemoryStringEncoding -CheatEngine.Client.Memory.MemoryStringEncoding.Utf8 = 0 -> CheatEngine.Client.Memory.MemoryStringEncoding -CheatEngine.Client.Memory.MemoryStringReadRequest -CheatEngine.Client.Memory.MemoryStringReadRequest.Address.get -> CheatEngine.SDK.Engine.Values.Address -CheatEngine.Client.Memory.MemoryStringReadRequest.Encoding.get -> CheatEngine.Client.Memory.MemoryStringEncoding -CheatEngine.Client.Memory.MemoryStringReadRequest.Equals(CheatEngine.Client.Memory.MemoryStringReadRequest other) -> bool -CheatEngine.Client.Memory.MemoryStringReadRequest.MaximumLength.get -> int -CheatEngine.Client.Memory.MemoryStringReadRequest.MemoryStringReadRequest() -> void -CheatEngine.Client.Memory.MemoryStringReadRequest.MemoryStringReadRequest(CheatEngine.SDK.Engine.Values.Address address, int maximumLength, CheatEngine.Client.Memory.MemoryStringEncoding encoding) -> void -CheatEngine.Client.Memory.MemoryStringWriteRequest -CheatEngine.Client.Memory.MemoryStringWriteRequest.Address.get -> CheatEngine.SDK.Engine.Values.Address -CheatEngine.Client.Memory.MemoryStringWriteRequest.Encoding.get -> CheatEngine.Client.Memory.MemoryStringEncoding -CheatEngine.Client.Memory.MemoryStringWriteRequest.Equals(CheatEngine.Client.Memory.MemoryStringWriteRequest other) -> bool -CheatEngine.Client.Memory.MemoryStringWriteRequest.MaximumLength.get -> int -CheatEngine.Client.Memory.MemoryStringWriteRequest.MemoryStringWriteRequest() -> void -CheatEngine.Client.Memory.MemoryStringWriteRequest.MemoryStringWriteRequest(CheatEngine.SDK.Engine.Values.Address address, string! value, int maximumLength, CheatEngine.Client.Memory.MemoryStringEncoding encoding) -> void -CheatEngine.Client.Memory.MemoryStringWriteRequest.Value.get -> string! -CheatEngine.Client.Memory.MemoryWriteRequest -CheatEngine.Client.Memory.MemoryWriteRequest.Address.get -> CheatEngine.SDK.Engine.Values.Address -CheatEngine.Client.Memory.MemoryWriteRequest.Codec.get -> CheatEngine.Client.Memory.IMemoryCodec! -CheatEngine.Client.Memory.MemoryWriteRequest.Equals(CheatEngine.Client.Memory.MemoryWriteRequest other) -> bool -CheatEngine.Client.Memory.MemoryWriteRequest.MemoryWriteRequest() -> void -CheatEngine.Client.Memory.MemoryWriteRequest.MemoryWriteRequest(CheatEngine.SDK.Engine.Values.Address address, T value, CheatEngine.Client.Memory.IMemoryCodec! codec) -> void -CheatEngine.Client.Memory.MemoryWriteRequest.Value.get -> T -CheatEngine.Client.Memory.PointerChainRequest -CheatEngine.Client.Memory.PointerChainRequest.BaseAddress.get -> CheatEngine.SDK.Engine.Values.Address -CheatEngine.Client.Memory.PointerChainRequest.Offsets.get -> System.Collections.Immutable.ImmutableArray -CheatEngine.Client.Memory.PointerChainRequest.PointerChainRequest() -> void -CheatEngine.Client.Memory.PointerChainRequest.PointerChainRequest(CheatEngine.SDK.Engine.Values.Address baseAddress, System.ReadOnlySpan offsets) -> void -CheatEngine.Client.Modules.ICheatEngineClientModule -CheatEngine.Client.Modules.ICheatEngineClientModule.OnDisabling(CheatEngine.Client.ICheatEngineClient! client) -> void -CheatEngine.Client.Modules.ICheatEngineClientModule.OnEnabled(CheatEngine.Client.ICheatEngineClient! client) -> void -CheatEngine.Client.Processes.IProcessClient -CheatEngine.Client.Processes.IProcessClient.Attach(CheatEngine.SDK.Engine.Inspection.TargetProcessId processId, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Processes.ProcessSnapshot -CheatEngine.Client.Processes.IProcessClient.AttachExactName(string! processName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Processes.ProcessSnapshot -CheatEngine.Client.Processes.IProcessClient.GetCurrentProcess(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Processes.ProcessSnapshot -CheatEngine.Client.Processes.IProcessClient.GetLocalProcesses(CheatEngine.Client.Processes.LocalProcessEnumerationRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Processes.LocalProcessEnumerationResult -CheatEngine.Client.Processes.IProcessClient.Refresh(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Processes.ProcessSnapshot -CheatEngine.Client.Processes.IProcessClient.TryAttach(CheatEngine.SDK.Engine.Inspection.TargetProcessId processId, out CheatEngine.Client.Processes.ProcessSnapshot snapshot, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Processes.IProcessClient.TryAttachExactName(string! processName, out CheatEngine.Client.Processes.ProcessSnapshot snapshot, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Processes.IProcessClient.TryGetCurrentProcess(out CheatEngine.Client.Processes.ProcessSnapshot snapshot, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Processes.IProcessClient.TryGetLocalProcesses(CheatEngine.Client.Processes.LocalProcessEnumerationRequest request, out CheatEngine.Client.Processes.LocalProcessEnumerationResult result, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Processes.IProcessClient.TryRefresh(out CheatEngine.Client.Processes.ProcessSnapshot snapshot, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Processes.LocalProcessEnumerationRequest -CheatEngine.Client.Processes.LocalProcessEnumerationRequest.Equals(CheatEngine.Client.Processes.LocalProcessEnumerationRequest other) -> bool -CheatEngine.Client.Processes.LocalProcessEnumerationRequest.LocalProcessEnumerationRequest() -> void -CheatEngine.Client.Processes.LocalProcessEnumerationRequest.LocalProcessEnumerationRequest(int maximumResults, string? nameContains = null) -> void -CheatEngine.Client.Processes.LocalProcessEnumerationRequest.MaximumResults.get -> int -CheatEngine.Client.Processes.LocalProcessEnumerationRequest.NameContains.get -> string? -CheatEngine.Client.Processes.LocalProcessEnumerationResult -CheatEngine.Client.Processes.LocalProcessEnumerationResult.IsTruncated.get -> bool -CheatEngine.Client.Processes.LocalProcessEnumerationResult.LocalProcessEnumerationResult() -> void -CheatEngine.Client.Processes.LocalProcessEnumerationResult.LocalProcessEnumerationResult(System.Collections.Immutable.ImmutableArray processes, bool isTruncated) -> void -CheatEngine.Client.Processes.LocalProcessEnumerationResult.Processes.get -> System.Collections.Immutable.ImmutableArray -CheatEngine.Client.Processes.LocalProcessId -CheatEngine.Client.Processes.LocalProcessId.Equals(CheatEngine.Client.Processes.LocalProcessId other) -> bool -CheatEngine.Client.Processes.LocalProcessId.LocalProcessId() -> void -CheatEngine.Client.Processes.LocalProcessId.LocalProcessId(int value) -> void -CheatEngine.Client.Processes.LocalProcessId.Value.get -> int -CheatEngine.Client.Processes.LocalProcessSnapshot -CheatEngine.Client.Processes.LocalProcessSnapshot.Equals(CheatEngine.Client.Processes.LocalProcessSnapshot other) -> bool -CheatEngine.Client.Processes.LocalProcessSnapshot.ExecutablePath.get -> string? -CheatEngine.Client.Processes.LocalProcessSnapshot.Id.get -> CheatEngine.Client.Processes.LocalProcessId -CheatEngine.Client.Processes.LocalProcessSnapshot.LocalProcessSnapshot() -> void -CheatEngine.Client.Processes.LocalProcessSnapshot.LocalProcessSnapshot(CheatEngine.Client.Processes.LocalProcessId id, string? name, string? executablePath) -> void -CheatEngine.Client.Processes.LocalProcessSnapshot.Name.get -> string? -CheatEngine.Client.Processes.ProcessSnapshot -CheatEngine.Client.Processes.ProcessSnapshot.Architecture.get -> CheatEngine.SDK.Engine.Runtime.CheatEngineArchitecture -CheatEngine.Client.Processes.ProcessSnapshot.Backend.get -> CheatEngine.SDK.Engine.Runtime.TargetBackend -CheatEngine.Client.Processes.ProcessSnapshot.Bitness.get -> CheatEngine.SDK.Engine.Runtime.PointerSize -CheatEngine.Client.Processes.ProcessSnapshot.ConfiguredPointerSize.get -> CheatEngine.SDK.Engine.Runtime.PointerSize -CheatEngine.Client.Processes.ProcessSnapshot.ConfiguredPointerSizeBytes.get -> int? -CheatEngine.Client.Processes.ProcessSnapshot.ConfiguredPointerSizeDiffersFromBitness.get -> bool? -CheatEngine.Client.Processes.ProcessSnapshot.Equals(CheatEngine.Client.Processes.ProcessSnapshot other) -> bool -CheatEngine.Client.Processes.ProcessSnapshot.ExecutablePath.get -> string? -CheatEngine.Client.Processes.ProcessSnapshot.Id.get -> CheatEngine.SDK.Engine.Inspection.TargetProcessId -CheatEngine.Client.Processes.ProcessSnapshot.Name.get -> string? -CheatEngine.Client.Processes.ProcessSnapshot.ProcessSnapshot() -> void -CheatEngine.Client.Processes.ProcessSnapshot.ProcessSnapshot(CheatEngine.SDK.Engine.Inspection.TargetProcessId id, string? name, string? executablePath, CheatEngine.SDK.Engine.Runtime.TargetBackend backend, CheatEngine.SDK.Engine.Runtime.CheatEngineArchitecture architecture, CheatEngine.SDK.Engine.Runtime.PointerSize bitness, int? configuredPointerSizeBytes, System.DateTimeOffset? startTimeUtc, long selectionEpoch) -> void -CheatEngine.Client.Processes.ProcessSnapshot.SelectionEpoch.get -> long -CheatEngine.Client.Processes.ProcessSnapshot.StartTimeUtc.get -> System.DateTimeOffset? -CheatEngine.Client.Results.CheatEngineActivationExpiredException -CheatEngine.Client.Results.CheatEngineClientException -CheatEngine.Client.Results.CheatEngineClientException.Failure.get -> CheatEngine.Client.Results.CheatEngineFailure -CheatEngine.Client.Results.CheatEngineFailure -CheatEngine.Client.Results.CheatEngineFailure.CheatEngineFailure() -> void -CheatEngine.Client.Results.CheatEngineFailure.CheatEngineFailure(CheatEngine.Client.Results.CheatEngineFailureKind kind, string! operation, string! message, System.Exception? exception = null, CheatEngine.Client.Results.CheatEngineHostEffect hostEffect = CheatEngine.Client.Results.CheatEngineHostEffect.Unknown) -> void -CheatEngine.Client.Results.CheatEngineFailure.Equals(CheatEngine.Client.Results.CheatEngineFailure other) -> bool -CheatEngine.Client.Results.CheatEngineFailure.Exception.get -> System.Exception? -CheatEngine.Client.Results.CheatEngineFailure.HostEffect.get -> CheatEngine.Client.Results.CheatEngineHostEffect -CheatEngine.Client.Results.CheatEngineFailure.IsDefault.get -> bool -CheatEngine.Client.Results.CheatEngineFailure.Kind.get -> CheatEngine.Client.Results.CheatEngineFailureKind -CheatEngine.Client.Results.CheatEngineFailure.Message.get -> string! -CheatEngine.Client.Results.CheatEngineFailure.Operation.get -> string! -CheatEngine.Client.Results.CheatEngineFailure.Throw(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void -CheatEngine.Client.Results.CheatEngineFailure.ToException(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Exception! -CheatEngine.Client.Results.CheatEngineFailureKind -CheatEngine.Client.Results.CheatEngineFailureKind.ActivationExpired = 14 -> CheatEngine.Client.Results.CheatEngineFailureKind -CheatEngine.Client.Results.CheatEngineFailureKind.AmbiguousMatch = 5 -> CheatEngine.Client.Results.CheatEngineFailureKind -CheatEngine.Client.Results.CheatEngineFailureKind.BindingError = 8 -> CheatEngine.Client.Results.CheatEngineFailureKind -CheatEngine.Client.Results.CheatEngineFailureKind.Cancelled = 1 -> CheatEngine.Client.Results.CheatEngineFailureKind -CheatEngine.Client.Results.CheatEngineFailureKind.CapabilityUnavailable = 2 -> CheatEngine.Client.Results.CheatEngineFailureKind -CheatEngine.Client.Results.CheatEngineFailureKind.IndeterminateHostResult = 16 -> CheatEngine.Client.Results.CheatEngineFailureKind -CheatEngine.Client.Results.CheatEngineFailureKind.InvalidHostResult = 9 -> CheatEngine.Client.Results.CheatEngineFailureKind -CheatEngine.Client.Results.CheatEngineFailureKind.InvalidState = 15 -> CheatEngine.Client.Results.CheatEngineFailureKind -CheatEngine.Client.Results.CheatEngineFailureKind.LuaError = 7 -> CheatEngine.Client.Results.CheatEngineFailureKind -CheatEngine.Client.Results.CheatEngineFailureKind.MemoryReadFailed = 12 -> CheatEngine.Client.Results.CheatEngineFailureKind -CheatEngine.Client.Results.CheatEngineFailureKind.MemoryWriteFailed = 13 -> CheatEngine.Client.Results.CheatEngineFailureKind -CheatEngine.Client.Results.CheatEngineFailureKind.NotFound = 4 -> CheatEngine.Client.Results.CheatEngineFailureKind -CheatEngine.Client.Results.CheatEngineFailureKind.OperationRejected = 3 -> CheatEngine.Client.Results.CheatEngineFailureKind -CheatEngine.Client.Results.CheatEngineFailureKind.ResultLimitExceeded = 6 -> CheatEngine.Client.Results.CheatEngineFailureKind -CheatEngine.Client.Results.CheatEngineFailureKind.RuntimeChanged = 19 -> CheatEngine.Client.Results.CheatEngineFailureKind -CheatEngine.Client.Results.CheatEngineFailureKind.TargetChanged = 17 -> CheatEngine.Client.Results.CheatEngineFailureKind -CheatEngine.Client.Results.CheatEngineFailureKind.TargetIdentityUnavailable = 18 -> CheatEngine.Client.Results.CheatEngineFailureKind -CheatEngine.Client.Results.CheatEngineFailureKind.TargetNotAttached = 11 -> CheatEngine.Client.Results.CheatEngineFailureKind -CheatEngine.Client.Results.CheatEngineFailureKind.Unknown = 0 -> CheatEngine.Client.Results.CheatEngineFailureKind -CheatEngine.Client.Results.CheatEngineFailureKind.Unsupported = 10 -> CheatEngine.Client.Results.CheatEngineFailureKind -CheatEngine.Client.Results.CheatEngineHostEffect -CheatEngine.Client.Results.CheatEngineHostEffect.CleanupUnconfirmed = 4 -> CheatEngine.Client.Results.CheatEngineHostEffect -CheatEngine.Client.Results.CheatEngineHostEffect.Completed = 3 -> CheatEngine.Client.Results.CheatEngineHostEffect -CheatEngine.Client.Results.CheatEngineHostEffect.NotApplied = 5 -> CheatEngine.Client.Results.CheatEngineHostEffect -CheatEngine.Client.Results.CheatEngineHostEffect.NotStarted = 1 -> CheatEngine.Client.Results.CheatEngineHostEffect -CheatEngine.Client.Results.CheatEngineHostEffect.Started = 2 -> CheatEngine.Client.Results.CheatEngineHostEffect -CheatEngine.Client.Results.CheatEngineHostEffect.Unknown = 0 -> CheatEngine.Client.Results.CheatEngineHostEffect -CheatEngine.Client.Results.CheatEngineInvalidStateException -CheatEngine.Client.Results.CheatEngineOperationCanceledException -CheatEngine.Client.Results.CheatEngineOperationCanceledException.Failure.get -> CheatEngine.Client.Results.CheatEngineFailure -CheatEngine.Client.Results.CheatEngineOperationException -CheatEngine.Client.Results.LeaseReleaseKind -CheatEngine.Client.Results.LeaseReleaseKind.AlreadyReleased = 2 -> CheatEngine.Client.Results.LeaseReleaseKind -CheatEngine.Client.Results.LeaseReleaseKind.CleanupUnavailable = 12 -> CheatEngine.Client.Results.LeaseReleaseKind -CheatEngine.Client.Results.LeaseReleaseKind.CleanupUnconfirmed = 11 -> CheatEngine.Client.Results.LeaseReleaseKind -CheatEngine.Client.Results.LeaseReleaseKind.ExternallyRemoved = 6 -> CheatEngine.Client.Results.LeaseReleaseKind -CheatEngine.Client.Results.LeaseReleaseKind.PartiallyReleased = 3 -> CheatEngine.Client.Results.LeaseReleaseKind -CheatEngine.Client.Results.LeaseReleaseKind.RefusedRuntimeChanged = 10 -> CheatEngine.Client.Results.LeaseReleaseKind -CheatEngine.Client.Results.LeaseReleaseKind.RefusedTargetChanged = 8 -> CheatEngine.Client.Results.LeaseReleaseKind -CheatEngine.Client.Results.LeaseReleaseKind.RefusedTargetIdentityUnavailable = 9 -> CheatEngine.Client.Results.LeaseReleaseKind -CheatEngine.Client.Results.LeaseReleaseKind.RefusedTargetNotAttached = 7 -> CheatEngine.Client.Results.LeaseReleaseKind -CheatEngine.Client.Results.LeaseReleaseKind.Released = 1 -> CheatEngine.Client.Results.LeaseReleaseKind -CheatEngine.Client.Results.LeaseReleaseKind.Replaced = 4 -> CheatEngine.Client.Results.LeaseReleaseKind -CheatEngine.Client.Results.LeaseReleaseKind.Superseded = 5 -> CheatEngine.Client.Results.LeaseReleaseKind -CheatEngine.Client.Results.LeaseReleaseKind.Unknown = 0 -> CheatEngine.Client.Results.LeaseReleaseKind -CheatEngine.Client.Results.LeaseReleaseOutcome -CheatEngine.Client.Results.LeaseReleaseOutcome.Equals(CheatEngine.Client.Results.LeaseReleaseOutcome other) -> bool -CheatEngine.Client.Results.LeaseReleaseOutcome.HostEffect.get -> CheatEngine.Client.Results.CheatEngineHostEffect -CheatEngine.Client.Results.LeaseReleaseOutcome.IsComplete.get -> bool -CheatEngine.Client.Results.LeaseReleaseOutcome.IsRetryable.get -> bool -CheatEngine.Client.Results.LeaseReleaseOutcome.Kind.get -> CheatEngine.Client.Results.LeaseReleaseKind -CheatEngine.Client.Results.LeaseReleaseOutcome.LeaseReleaseOutcome() -> void -CheatEngine.Client.Results.LeaseReleaseOutcome.LeaseReleaseOutcome(CheatEngine.Client.Results.LeaseReleaseKind kind, CheatEngine.Client.Results.CheatEngineHostEffect hostEffect) -> void -CheatEngine.Client.Results.LeaseReleaseOutcome.RequiresManualRecovery.get -> bool -CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo -CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.CheatEngineBitness.get -> CheatEngine.SDK.Engine.Runtime.PointerSize -CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.CheatEngineRuntimePlatformInfo() -> void -CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.CheatEngineRuntimePlatformInfo(CheatEngine.SDK.Engine.Runtime.CheatEngineOperatingSystem hostOperatingSystem, CheatEngine.SDK.Engine.Runtime.CheatEngineArchitecture hostArchitecture, CheatEngine.SDK.Engine.Runtime.PointerSize cheatEngineBitness, CheatEngine.SDK.Engine.Runtime.TargetBackend targetBackend, CheatEngine.SDK.Engine.Runtime.CheatEngineArchitecture targetArchitecture, CheatEngine.SDK.Engine.Runtime.PointerSize targetBitness, CheatEngine.SDK.Engine.Runtime.TargetAbi targetAbi, bool? targetIsAndroid, int? configuredPointerSizeBytes) -> void -CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.ConfiguredPointerSize.get -> CheatEngine.SDK.Engine.Runtime.PointerSize -CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.ConfiguredPointerSizeBytes.get -> int? -CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.ConfiguredPointerSizeDiffersFromBitness.get -> bool? -CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.Equals(CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo other) -> bool -CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.HostArchitecture.get -> CheatEngine.SDK.Engine.Runtime.CheatEngineArchitecture -CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.HostOperatingSystem.get -> CheatEngine.SDK.Engine.Runtime.CheatEngineOperatingSystem -CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.TargetAbi.get -> CheatEngine.SDK.Engine.Runtime.TargetAbi -CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.TargetArchitecture.get -> CheatEngine.SDK.Engine.Runtime.CheatEngineArchitecture -CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.TargetBackend.get -> CheatEngine.SDK.Engine.Runtime.TargetBackend -CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.TargetBitness.get -> CheatEngine.SDK.Engine.Runtime.PointerSize -CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.TargetIsAndroid.get -> bool? -CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot -CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot.Capabilities.get -> CheatEngine.Client.Runtime.ClientCapabilities! -CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot.CheatEngineRuntimeSnapshot() -> void -CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot.CheatEngineRuntimeSnapshot(long epoch, CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo version, CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo platform, CheatEngine.Client.Runtime.ClientCapabilities! capabilities) -> void -CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot.Epoch.get -> long -CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot.Equals(CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot other) -> bool -CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot.Platform.get -> CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo -CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot.Version.get -> CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo -CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo -CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.CheatEngineRuntimeVersionInfo() -> void -CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.CheatEngineRuntimeVersionInfo(CheatEngine.SDK.Engine.Runtime.CheatEngineVersion? cheatEngineVersion, CheatEngine.SDK.Engine.Runtime.CheatEngineVersion qualifiedCheatEngineBaseline, System.Version! clientAssemblyVersion, System.Version! sdkAssemblyVersion, string? sdkPackageVersion, bool isReviewedSdkPackage) -> void -CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.CheatEngineVersion.get -> CheatEngine.SDK.Engine.Runtime.CheatEngineVersion? -CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.ClientAssemblyVersion.get -> System.Version! -CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.Equals(CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo other) -> bool -CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.IsOnQualifiedCheatEngineLine.get -> bool -CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.IsReviewedSdkPackage.get -> bool -CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.QualifiedCheatEngineBaseline.get -> CheatEngine.SDK.Engine.Runtime.CheatEngineVersion -CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.SdkAssemblyVersion.get -> System.Version! -CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.SdkPackageVersion.get -> string? -CheatEngine.Client.Runtime.ClientCapabilities -CheatEngine.Client.Runtime.ClientCapabilities.Count.get -> int -CheatEngine.Client.Runtime.ClientCapabilities.Entries.get -> System.ReadOnlySpan -CheatEngine.Client.Runtime.ClientCapabilities.Equals(CheatEngine.Client.Runtime.ClientCapabilities? other) -> bool -CheatEngine.Client.Runtime.ClientCapabilities.TryGet(CheatEngine.Client.Runtime.ClientCapabilityId capability, out CheatEngine.Client.Runtime.ClientCapabilityAvailability availability) -> bool -CheatEngine.Client.Runtime.ClientCapabilityAvailability -CheatEngine.Client.Runtime.ClientCapabilityAvailability.Capability.get -> CheatEngine.Client.Runtime.ClientCapabilityId -CheatEngine.Client.Runtime.ClientCapabilityAvailability.ClientCapabilityAvailability() -> void -CheatEngine.Client.Runtime.ClientCapabilityAvailability.ClientCapabilityAvailability(CheatEngine.Client.Runtime.ClientCapabilityId capability, CheatEngine.Client.Runtime.ClientCapabilityEvidence evidence) -> void -CheatEngine.Client.Runtime.ClientCapabilityAvailability.Equals(CheatEngine.Client.Runtime.ClientCapabilityAvailability other) -> bool -CheatEngine.Client.Runtime.ClientCapabilityAvailability.Evidence.get -> CheatEngine.Client.Runtime.ClientCapabilityEvidence -CheatEngine.Client.Runtime.ClientCapabilityAvailability.IsAvailable.get -> bool -CheatEngine.Client.Runtime.ClientCapabilityAvailability.IsKnown.get -> bool -CheatEngine.Client.Runtime.ClientCapabilityAvailability.Reason.get -> string! -CheatEngine.Client.Runtime.ClientCapabilityAvailability.State.get -> CheatEngine.Client.Runtime.ClientCapabilityAvailabilityState -CheatEngine.Client.Runtime.ClientCapabilityAvailabilityState -CheatEngine.Client.Runtime.ClientCapabilityAvailabilityState.Available = 1 -> CheatEngine.Client.Runtime.ClientCapabilityAvailabilityState -CheatEngine.Client.Runtime.ClientCapabilityAvailabilityState.Unavailable = 2 -> CheatEngine.Client.Runtime.ClientCapabilityAvailabilityState -CheatEngine.Client.Runtime.ClientCapabilityAvailabilityState.Unknown = 0 -> CheatEngine.Client.Runtime.ClientCapabilityAvailabilityState -CheatEngine.Client.Runtime.ClientCapabilityEvidence -CheatEngine.Client.Runtime.ClientCapabilityEvidence.AvailabilityState.get -> CheatEngine.Client.Runtime.ClientCapabilityAvailabilityState -CheatEngine.Client.Runtime.ClientCapabilityEvidence.ClientCapabilityEvidence() -> void -CheatEngine.Client.Runtime.ClientCapabilityEvidence.ClientCapabilityEvidence(CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate implementation, CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate package, CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate host, CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate liveQualification, CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate policy, CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate lifetime) -> void -CheatEngine.Client.Runtime.ClientCapabilityEvidence.EffectiveReason.get -> string! -CheatEngine.Client.Runtime.ClientCapabilityEvidence.EffectiveReasonCode.get -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode -CheatEngine.Client.Runtime.ClientCapabilityEvidence.Equals(CheatEngine.Client.Runtime.ClientCapabilityEvidence other) -> bool -CheatEngine.Client.Runtime.ClientCapabilityEvidence.Host.get -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate -CheatEngine.Client.Runtime.ClientCapabilityEvidence.Implementation.get -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate -CheatEngine.Client.Runtime.ClientCapabilityEvidence.Lifetime.get -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate -CheatEngine.Client.Runtime.ClientCapabilityEvidence.LiveQualification.get -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate -CheatEngine.Client.Runtime.ClientCapabilityEvidence.Package.get -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate -CheatEngine.Client.Runtime.ClientCapabilityEvidence.Policy.get -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate -CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate -CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate.ClientCapabilityEvidenceGate() -> void -CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate.ClientCapabilityEvidenceGate(CheatEngine.Client.Runtime.ClientCapabilityEvidenceState state, string! reason) -> void -CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate.Equals(CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate other) -> bool -CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate.IsSatisfied.get -> bool -CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate.Reason.get -> string! -CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate.State.get -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceState -CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode -CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode.Host = 3 -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode -CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode.Implementation = 1 -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode -CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode.Lifetime = 6 -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode -CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode.LiveQualification = 4 -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode -CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode.Package = 2 -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode -CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode.Policy = 5 -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode -CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode.Unknown = 0 -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceReasonCode -CheatEngine.Client.Runtime.ClientCapabilityEvidenceState -CheatEngine.Client.Runtime.ClientCapabilityEvidenceState.Faulted = 3 -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceState -CheatEngine.Client.Runtime.ClientCapabilityEvidenceState.Malformed = 4 -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceState -CheatEngine.Client.Runtime.ClientCapabilityEvidenceState.Missing = 2 -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceState -CheatEngine.Client.Runtime.ClientCapabilityEvidenceState.Satisfied = 1 -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceState -CheatEngine.Client.Runtime.ClientCapabilityEvidenceState.Unknown = 0 -> CheatEngine.Client.Runtime.ClientCapabilityEvidenceState -CheatEngine.Client.Runtime.ClientCapabilityId -CheatEngine.Client.Runtime.ClientCapabilityId.ClientCapabilityId() -> void -CheatEngine.Client.Runtime.ClientCapabilityId.ClientCapabilityId(string! value) -> void -CheatEngine.Client.Runtime.ClientCapabilityId.Equals(CheatEngine.Client.Runtime.ClientCapabilityId other) -> bool -CheatEngine.Client.Runtime.ClientCapabilityId.IsEmpty.get -> bool -CheatEngine.Client.Runtime.ClientCapabilityId.Value.get -> string! -CheatEngine.Client.Runtime.ICheatEngineRuntime -CheatEngine.Client.Runtime.ICheatEngineRuntime.Epoch.get -> long -CheatEngine.Client.Runtime.ICheatEngineRuntime.GetClientCapability(CheatEngine.Client.Runtime.ClientCapabilityId capability, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Runtime.ClientCapabilityAvailability -CheatEngine.Client.Runtime.ICheatEngineRuntime.GetSnapshot(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot -CheatEngine.Client.Runtime.ICheatEngineRuntime.TryGetClientCapability(CheatEngine.Client.Runtime.ClientCapabilityId capability, out CheatEngine.Client.Runtime.ClientCapabilityAvailability availability, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Runtime.ICheatEngineRuntime.TryGetSnapshot(out CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot snapshot, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Scanning.AobPattern -CheatEngine.Client.Scanning.AobPattern.AobPattern() -> void -CheatEngine.Client.Scanning.AobPattern.AobPattern(string! value) -> void -CheatEngine.Client.Scanning.AobPattern.ByteLength.get -> int -CheatEngine.Client.Scanning.AobPattern.Equals(CheatEngine.Client.Scanning.AobPattern other) -> bool -CheatEngine.Client.Scanning.AobPattern.IsWildcardOnly.get -> bool -CheatEngine.Client.Scanning.AobPattern.Value.get -> string! -CheatEngine.Client.Scanning.AobScanRange -CheatEngine.Client.Scanning.AobScanRange.AobScanRange() -> void -CheatEngine.Client.Scanning.AobScanRange.AobScanRange(CheatEngine.SDK.Engine.Values.Address start, CheatEngine.SDK.Engine.Values.Address end) -> void -CheatEngine.Client.Scanning.AobScanRange.Contains(CheatEngine.SDK.Engine.Values.Address address) -> bool -CheatEngine.Client.Scanning.AobScanRange.End.get -> CheatEngine.SDK.Engine.Values.Address -CheatEngine.Client.Scanning.AobScanRange.Equals(CheatEngine.Client.Scanning.AobScanRange other) -> bool -CheatEngine.Client.Scanning.AobScanRange.Start.get -> CheatEngine.SDK.Engine.Values.Address -CheatEngine.Client.Scanning.AobScanRequest -CheatEngine.Client.Scanning.AobScanRequest.Alignment.get -> CheatEngine.Client.Scanning.ScanAlignment -CheatEngine.Client.Scanning.AobScanRequest.AobScanRequest() -> void -CheatEngine.Client.Scanning.AobScanRequest.AobScanRequest(CheatEngine.Client.Scanning.AobPattern pattern, int maximumResults, CheatEngine.SDK.Engine.Inspection.ModuleName? module = null, CheatEngine.Client.Scanning.AobScanRange? range = null, CheatEngine.Client.Scanning.ScanProtectionFilter protection = default(CheatEngine.Client.Scanning.ScanProtectionFilter), CheatEngine.Client.Scanning.ScanAlignment alignment = default(CheatEngine.Client.Scanning.ScanAlignment)) -> void -CheatEngine.Client.Scanning.AobScanRequest.Equals(CheatEngine.Client.Scanning.AobScanRequest other) -> bool -CheatEngine.Client.Scanning.AobScanRequest.MaximumResults.get -> int -CheatEngine.Client.Scanning.AobScanRequest.Module.get -> CheatEngine.SDK.Engine.Inspection.ModuleName? -CheatEngine.Client.Scanning.AobScanRequest.Pattern.get -> CheatEngine.Client.Scanning.AobPattern -CheatEngine.Client.Scanning.AobScanRequest.Protection.get -> CheatEngine.Client.Scanning.ScanProtectionFilter -CheatEngine.Client.Scanning.AobScanRequest.Range.get -> CheatEngine.Client.Scanning.AobScanRange? -CheatEngine.Client.Scanning.AobScanResult -CheatEngine.Client.Scanning.AobScanResult.AobScanResult() -> void -CheatEngine.Client.Scanning.AobScanResult.AobScanResult(System.Collections.Immutable.ImmutableArray matches, bool isTruncated) -> void -CheatEngine.Client.Scanning.AobScanResult.IsTruncated.get -> bool -CheatEngine.Client.Scanning.AobScanResult.Matches.get -> System.Collections.Immutable.ImmutableArray -CheatEngine.Client.Scanning.IPatternScanner -CheatEngine.Client.Scanning.IPatternScanner.Scan(CheatEngine.Client.Scanning.AobScanRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Scanning.AobScanResult -CheatEngine.Client.Scanning.IPatternScanner.ScanDetailed(CheatEngine.Client.Scanning.AobScanRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Scanning.PatternScanOutcome! -CheatEngine.Client.Scanning.IPatternScanner.TryScan(CheatEngine.Client.Scanning.AobScanRequest request, out CheatEngine.Client.Scanning.AobScanResult result, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Scanning.PatternScanHostOutcomeKind -CheatEngine.Client.Scanning.PatternScanHostOutcomeKind.Cancelled = 12 -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind -CheatEngine.Client.Scanning.PatternScanHostOutcomeKind.GlobalUnavailable = 4 -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind -CheatEngine.Client.Scanning.PatternScanHostOutcomeKind.HostReportedError = 8 -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind -CheatEngine.Client.Scanning.PatternScanHostOutcomeKind.InvalidResult = 6 -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind -CheatEngine.Client.Scanning.PatternScanHostOutcomeKind.Matches = 1 -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind -CheatEngine.Client.Scanning.PatternScanHostOutcomeKind.NoMatches = 2 -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind -CheatEngine.Client.Scanning.PatternScanHostOutcomeKind.NoResult = 3 -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind -CheatEngine.Client.Scanning.PatternScanHostOutcomeKind.ProtectedLuaFailure = 5 -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind -CheatEngine.Client.Scanning.PatternScanHostOutcomeKind.ResultListCountUnavailable = 7 -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind -CheatEngine.Client.Scanning.PatternScanHostOutcomeKind.RuntimeChanged = 11 -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind -CheatEngine.Client.Scanning.PatternScanHostOutcomeKind.TargetChanged = 9 -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind -CheatEngine.Client.Scanning.PatternScanHostOutcomeKind.TargetIdentityUnavailable = 10 -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind -CheatEngine.Client.Scanning.PatternScanHostOutcomeKind.Unknown = 0 -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind -CheatEngine.Client.Scanning.PatternScanMetrics -CheatEngine.Client.Scanning.PatternScanMetrics.AtOrAfterStopSkippedCount.get -> ulong -CheatEngine.Client.Scanning.PatternScanMetrics.BelowStartSkippedCount.get -> ulong -CheatEngine.Client.Scanning.PatternScanMetrics.Equals(CheatEngine.Client.Scanning.PatternScanMetrics other) -> bool -CheatEngine.Client.Scanning.PatternScanMetrics.ExaminedCount.get -> ulong -CheatEngine.Client.Scanning.PatternScanMetrics.FilteredOutCount.get -> ulong -CheatEngine.Client.Scanning.PatternScanMetrics.HostResultCount.get -> ulong -CheatEngine.Client.Scanning.PatternScanMetrics.HostScanElapsed.get -> System.TimeSpan -CheatEngine.Client.Scanning.PatternScanMetrics.InBoundsCountIsExact.get -> bool -CheatEngine.Client.Scanning.PatternScanMetrics.MaterializationElapsed.get -> System.TimeSpan -CheatEngine.Client.Scanning.PatternScanMetrics.MaterializedCount.get -> int -CheatEngine.Client.Scanning.PatternScanMetrics.PatternScanMetrics() -> void -CheatEngine.Client.Scanning.PatternScanMetrics.PatternScanMetrics(CheatEngine.Client.Scanning.PatternScanScope scope, ulong hostResultCount, ulong examinedCount, ulong filteredOutCount, int materializedCount, ulong belowStartSkippedCount, ulong atOrAfterStopSkippedCount, ulong unreadHostRowCount, bool inBoundsCountIsExact, System.TimeSpan hostScanElapsed, System.TimeSpan materializationElapsed) -> void -CheatEngine.Client.Scanning.PatternScanMetrics.Scope.get -> CheatEngine.Client.Scanning.PatternScanScope -CheatEngine.Client.Scanning.PatternScanMetrics.UnreadHostRowCount.get -> ulong -CheatEngine.Client.Scanning.PatternScanOutcome -CheatEngine.Client.Scanning.PatternScanOutcome.Failure.get -> CheatEngine.Client.Results.CheatEngineFailure? -CheatEngine.Client.Scanning.PatternScanOutcome.HostOutcome.get -> CheatEngine.Client.Scanning.PatternScanHostOutcomeKind -CheatEngine.Client.Scanning.PatternScanOutcome.IsSuccess.get -> bool -CheatEngine.Client.Scanning.PatternScanOutcome.Metrics.get -> CheatEngine.Client.Scanning.PatternScanMetrics? -CheatEngine.Client.Scanning.PatternScanOutcome.PatternScanOutcome(CheatEngine.Client.Scanning.AobScanResult? result, CheatEngine.Client.Results.CheatEngineFailure? failure, CheatEngine.Client.Scanning.PatternScanMetrics? metrics, CheatEngine.Client.Scanning.PatternScanHostOutcomeKind hostOutcome, CheatEngine.Client.Scanning.PatternScanRouteReason routeReason, bool targetIdentityVerified) -> void -CheatEngine.Client.Scanning.PatternScanOutcome.Result.get -> CheatEngine.Client.Scanning.AobScanResult? -CheatEngine.Client.Scanning.PatternScanOutcome.RouteReason.get -> CheatEngine.Client.Scanning.PatternScanRouteReason -CheatEngine.Client.Scanning.PatternScanOutcome.TargetIdentityVerified.get -> bool -CheatEngine.Client.Scanning.PatternScanRouteReason -CheatEngine.Client.Scanning.PatternScanRouteReason.ScopedRequestOnQualifiedTarget = 2 -> CheatEngine.Client.Scanning.PatternScanRouteReason -CheatEngine.Client.Scanning.PatternScanRouteReason.TargetIdentityNotQualified = 3 -> CheatEngine.Client.Scanning.PatternScanRouteReason -CheatEngine.Client.Scanning.PatternScanRouteReason.Unknown = 0 -> CheatEngine.Client.Scanning.PatternScanRouteReason -CheatEngine.Client.Scanning.PatternScanRouteReason.UnscopedRequest = 1 -> CheatEngine.Client.Scanning.PatternScanRouteReason -CheatEngine.Client.Scanning.PatternScanScope -CheatEngine.Client.Scanning.PatternScanScope.GlobalHostScan = 1 -> CheatEngine.Client.Scanning.PatternScanScope -CheatEngine.Client.Scanning.PatternScanScope.GlobalHostScanWithManagedFilter = 3 -> CheatEngine.Client.Scanning.PatternScanScope -CheatEngine.Client.Scanning.PatternScanScope.HostBoundedRange = 2 -> CheatEngine.Client.Scanning.PatternScanScope -CheatEngine.Client.Scanning.PatternScanScope.Unknown = 0 -> CheatEngine.Client.Scanning.PatternScanScope -CheatEngine.Client.Scanning.ScanAlignment -CheatEngine.Client.Scanning.ScanAlignment.Digits.get -> string? -CheatEngine.Client.Scanning.ScanAlignment.Divisor.get -> int -CheatEngine.Client.Scanning.ScanAlignment.Equals(CheatEngine.Client.Scanning.ScanAlignment other) -> bool -CheatEngine.Client.Scanning.ScanAlignment.Mode.get -> CheatEngine.Client.Scanning.ScanAlignmentMode -CheatEngine.Client.Scanning.ScanAlignment.ScanAlignment() -> void -CheatEngine.Client.Scanning.ScanAlignmentMode -CheatEngine.Client.Scanning.ScanAlignmentMode.AlignedTo = 1 -> CheatEngine.Client.Scanning.ScanAlignmentMode -CheatEngine.Client.Scanning.ScanAlignmentMode.LastDigits = 2 -> CheatEngine.Client.Scanning.ScanAlignmentMode -CheatEngine.Client.Scanning.ScanAlignmentMode.None = 0 -> CheatEngine.Client.Scanning.ScanAlignmentMode -CheatEngine.Client.Scanning.ScanProtectionFilter -CheatEngine.Client.Scanning.ScanProtectionFilter.CopyOnWrite.get -> CheatEngine.Client.Scanning.ScanProtectionRequirement -CheatEngine.Client.Scanning.ScanProtectionFilter.Equals(CheatEngine.Client.Scanning.ScanProtectionFilter other) -> bool -CheatEngine.Client.Scanning.ScanProtectionFilter.Executable.get -> CheatEngine.Client.Scanning.ScanProtectionRequirement -CheatEngine.Client.Scanning.ScanProtectionFilter.IsUnspecified.get -> bool -CheatEngine.Client.Scanning.ScanProtectionFilter.ScanProtectionFilter() -> void -CheatEngine.Client.Scanning.ScanProtectionFilter.ScanProtectionFilter(CheatEngine.Client.Scanning.ScanProtectionRequirement executable, CheatEngine.Client.Scanning.ScanProtectionRequirement copyOnWrite, CheatEngine.Client.Scanning.ScanProtectionRequirement writable) -> void -CheatEngine.Client.Scanning.ScanProtectionFilter.Writable.get -> CheatEngine.Client.Scanning.ScanProtectionRequirement -CheatEngine.Client.Scanning.ScanProtectionRequirement -CheatEngine.Client.Scanning.ScanProtectionRequirement.Any = 3 -> CheatEngine.Client.Scanning.ScanProtectionRequirement -CheatEngine.Client.Scanning.ScanProtectionRequirement.Excluded = 2 -> CheatEngine.Client.Scanning.ScanProtectionRequirement -CheatEngine.Client.Scanning.ScanProtectionRequirement.Required = 1 -> CheatEngine.Client.Scanning.ScanProtectionRequirement -CheatEngine.Client.Scanning.ScanProtectionRequirement.Unspecified = 0 -> CheatEngine.Client.Scanning.ScanProtectionRequirement -CheatEngine.Client.Tables.AddressTableSnapshot -CheatEngine.Client.Tables.AddressTableSnapshot.AddressTableSnapshot() -> void -CheatEngine.Client.Tables.AddressTableSnapshot.AddressTableSnapshot(System.Collections.Immutable.ImmutableArray records) -> void -CheatEngine.Client.Tables.AddressTableSnapshot.RecordCount.get -> int -CheatEngine.Client.Tables.AddressTableSnapshot.Records.get -> System.Collections.Immutable.ImmutableArray -CheatEngine.Client.Tables.ITableClient -CheatEngine.Client.Tables.ITableClient.Create(CheatEngine.Client.Tables.MemoryRecordDefinition definition, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Tables.MemoryRecordSnapshot -CheatEngine.Client.Tables.ITableClient.Delete(CheatEngine.SDK.Engine.AddressList.MemoryRecordId id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void -CheatEngine.Client.Tables.ITableClient.Find(CheatEngine.Client.Tables.MemoryRecordSearch search, CheatEngine.Client.Tables.MemoryRecordCollectionRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Immutable.ImmutableArray -CheatEngine.Client.Tables.ITableClient.GetHierarchy(CheatEngine.SDK.Engine.AddressList.MemoryRecordId rootId, CheatEngine.Client.Tables.MemoryRecordHierarchyRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Tables.MemoryRecordHierarchySnapshot -CheatEngine.Client.Tables.ITableClient.GetRecord(CheatEngine.SDK.Engine.AddressList.MemoryRecordId id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Tables.MemoryRecordSnapshot -CheatEngine.Client.Tables.ITableClient.GetRecordAt(int index, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Tables.MemoryRecordSnapshot -CheatEngine.Client.Tables.ITableClient.GetRecordCount(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> int -CheatEngine.Client.Tables.ITableClient.GetSelectedRecord(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Tables.MemoryRecordSnapshot -CheatEngine.Client.Tables.ITableClient.GetSnapshot(CheatEngine.Client.Tables.MemoryRecordCollectionRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Tables.AddressTableSnapshot -CheatEngine.Client.Tables.ITableClient.LoadTrustedTable(CheatEngine.Client.Tables.TableLoadRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void -CheatEngine.Client.Tables.ITableClient.SaveTable(CheatEngine.Client.Tables.TableSaveRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void -CheatEngine.Client.Tables.ITableClient.SelectRecord(CheatEngine.SDK.Engine.AddressList.MemoryRecordId id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Tables.MemoryRecordSnapshot -CheatEngine.Client.Tables.ITableClient.SetActive(CheatEngine.SDK.Engine.AddressList.MemoryRecordId id, bool isActive, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Tables.MemoryRecordSnapshot -CheatEngine.Client.Tables.ITableClient.SetParent(CheatEngine.SDK.Engine.AddressList.MemoryRecordId childId, CheatEngine.SDK.Engine.AddressList.MemoryRecordId? parentId, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Tables.MemoryRecordSnapshot -CheatEngine.Client.Tables.ITableClient.TryCreate(CheatEngine.Client.Tables.MemoryRecordDefinition definition, out CheatEngine.Client.Tables.MemoryRecordSnapshot record, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Tables.ITableClient.TryDelete(CheatEngine.SDK.Engine.AddressList.MemoryRecordId id, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Tables.ITableClient.TryFind(CheatEngine.Client.Tables.MemoryRecordSearch search, CheatEngine.Client.Tables.MemoryRecordCollectionRequest request, out System.Collections.Immutable.ImmutableArray records, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Tables.ITableClient.TryGetHierarchy(CheatEngine.SDK.Engine.AddressList.MemoryRecordId rootId, CheatEngine.Client.Tables.MemoryRecordHierarchyRequest request, out CheatEngine.Client.Tables.MemoryRecordHierarchySnapshot hierarchy, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Tables.ITableClient.TryGetRecord(CheatEngine.SDK.Engine.AddressList.MemoryRecordId id, out CheatEngine.Client.Tables.MemoryRecordSnapshot record, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Tables.ITableClient.TryGetRecordAt(int index, out CheatEngine.Client.Tables.MemoryRecordSnapshot record, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Tables.ITableClient.TryGetRecordCount(out int recordCount, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Tables.ITableClient.TryGetSelectedRecord(out CheatEngine.Client.Tables.MemoryRecordSnapshot record, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Tables.ITableClient.TryGetSnapshot(CheatEngine.Client.Tables.MemoryRecordCollectionRequest request, out CheatEngine.Client.Tables.AddressTableSnapshot table, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Tables.ITableClient.TryLoadTrustedTable(CheatEngine.Client.Tables.TableLoadRequest request, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Tables.ITableClient.TrySaveTable(CheatEngine.Client.Tables.TableSaveRequest request, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Tables.ITableClient.TrySelectRecord(CheatEngine.SDK.Engine.AddressList.MemoryRecordId id, out CheatEngine.Client.Tables.MemoryRecordSnapshot record, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Tables.ITableClient.TrySetActive(CheatEngine.SDK.Engine.AddressList.MemoryRecordId id, bool isActive, out CheatEngine.Client.Tables.MemoryRecordSnapshot record, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Tables.ITableClient.TrySetParent(CheatEngine.SDK.Engine.AddressList.MemoryRecordId childId, CheatEngine.SDK.Engine.AddressList.MemoryRecordId? parentId, out CheatEngine.Client.Tables.MemoryRecordSnapshot record, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Tables.ITableClient.TryUpdate(CheatEngine.SDK.Engine.AddressList.MemoryRecordId id, CheatEngine.Client.Tables.MemoryRecordUpdate update, out CheatEngine.Client.Tables.MemoryRecordSnapshot record, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Tables.ITableClient.Update(CheatEngine.SDK.Engine.AddressList.MemoryRecordId id, CheatEngine.Client.Tables.MemoryRecordUpdate update, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Tables.MemoryRecordSnapshot -CheatEngine.Client.Tables.MemoryRecordCollectionRequest -CheatEngine.Client.Tables.MemoryRecordCollectionRequest.Equals(CheatEngine.Client.Tables.MemoryRecordCollectionRequest other) -> bool -CheatEngine.Client.Tables.MemoryRecordCollectionRequest.MaximumItems.get -> int -CheatEngine.Client.Tables.MemoryRecordCollectionRequest.MemoryRecordCollectionRequest() -> void -CheatEngine.Client.Tables.MemoryRecordCollectionRequest.MemoryRecordCollectionRequest(int maximumItems) -> void -CheatEngine.Client.Tables.MemoryRecordContentSnapshot -CheatEngine.Client.Tables.MemoryRecordContentSnapshot.AddressExpression.get -> string! -CheatEngine.Client.Tables.MemoryRecordContentSnapshot.Description.get -> string! -CheatEngine.Client.Tables.MemoryRecordContentSnapshot.Equals(CheatEngine.Client.Tables.MemoryRecordContentSnapshot other) -> bool -CheatEngine.Client.Tables.MemoryRecordContentSnapshot.MemoryRecordContentSnapshot() -> void -CheatEngine.Client.Tables.MemoryRecordContentSnapshot.MemoryRecordContentSnapshot(string! description, string! addressExpression, string! value, CheatEngine.SDK.Engine.Enums.VariableType variableType, string? script = null, int offsetCount = 0) -> void -CheatEngine.Client.Tables.MemoryRecordContentSnapshot.OffsetCount.get -> int -CheatEngine.Client.Tables.MemoryRecordContentSnapshot.Script.get -> string? -CheatEngine.Client.Tables.MemoryRecordContentSnapshot.Value.get -> string! -CheatEngine.Client.Tables.MemoryRecordContentSnapshot.VariableType.get -> CheatEngine.SDK.Engine.Enums.VariableType -CheatEngine.Client.Tables.MemoryRecordDefinition -CheatEngine.Client.Tables.MemoryRecordDefinition.AddressExpression.get -> string! -CheatEngine.Client.Tables.MemoryRecordDefinition.Description.get -> string! -CheatEngine.Client.Tables.MemoryRecordDefinition.Equals(CheatEngine.Client.Tables.MemoryRecordDefinition other) -> bool -CheatEngine.Client.Tables.MemoryRecordDefinition.MemoryRecordDefinition() -> void -CheatEngine.Client.Tables.MemoryRecordDefinition.MemoryRecordDefinition(string! description, string! addressExpression, string! value, CheatEngine.SDK.Engine.Enums.VariableType variableType, CheatEngine.SDK.Engine.AddressList.MemoryRecordId? parentId = null) -> void -CheatEngine.Client.Tables.MemoryRecordDefinition.ParentId.get -> CheatEngine.SDK.Engine.AddressList.MemoryRecordId? -CheatEngine.Client.Tables.MemoryRecordDefinition.Value.get -> string! -CheatEngine.Client.Tables.MemoryRecordDefinition.VariableType.get -> CheatEngine.SDK.Engine.Enums.VariableType -CheatEngine.Client.Tables.MemoryRecordHierarchyRequest -CheatEngine.Client.Tables.MemoryRecordHierarchyRequest.Equals(CheatEngine.Client.Tables.MemoryRecordHierarchyRequest other) -> bool -CheatEngine.Client.Tables.MemoryRecordHierarchyRequest.MaximumDepth.get -> int -CheatEngine.Client.Tables.MemoryRecordHierarchyRequest.MaximumItems.get -> int -CheatEngine.Client.Tables.MemoryRecordHierarchyRequest.MemoryRecordHierarchyRequest() -> void -CheatEngine.Client.Tables.MemoryRecordHierarchyRequest.MemoryRecordHierarchyRequest(int maximumItems, int maximumDepth) -> void -CheatEngine.Client.Tables.MemoryRecordHierarchySnapshot -CheatEngine.Client.Tables.MemoryRecordHierarchySnapshot.Children.get -> System.Collections.Immutable.ImmutableArray -CheatEngine.Client.Tables.MemoryRecordHierarchySnapshot.MemoryRecordHierarchySnapshot() -> void -CheatEngine.Client.Tables.MemoryRecordHierarchySnapshot.MemoryRecordHierarchySnapshot(CheatEngine.Client.Tables.MemoryRecordSnapshot record, System.Collections.Immutable.ImmutableArray children) -> void -CheatEngine.Client.Tables.MemoryRecordHierarchySnapshot.Record.get -> CheatEngine.Client.Tables.MemoryRecordSnapshot -CheatEngine.Client.Tables.MemoryRecordSearch -CheatEngine.Client.Tables.MemoryRecordSearch.AddressExpression.get -> string? -CheatEngine.Client.Tables.MemoryRecordSearch.DescriptionContains.get -> string? -CheatEngine.Client.Tables.MemoryRecordSearch.Equals(CheatEngine.Client.Tables.MemoryRecordSearch other) -> bool -CheatEngine.Client.Tables.MemoryRecordSearch.IsActive.get -> bool? -CheatEngine.Client.Tables.MemoryRecordSearch.MemoryRecordSearch() -> void -CheatEngine.Client.Tables.MemoryRecordSearch.MemoryRecordSearch(string? descriptionContains = null, string? addressExpression = null, CheatEngine.SDK.Engine.Enums.VariableType? variableType = null, bool? isActive = null) -> void -CheatEngine.Client.Tables.MemoryRecordSearch.VariableType.get -> CheatEngine.SDK.Engine.Enums.VariableType? -CheatEngine.Client.Tables.MemoryRecordSnapshot -CheatEngine.Client.Tables.MemoryRecordSnapshot.Content.get -> CheatEngine.Client.Tables.MemoryRecordContentSnapshot -CheatEngine.Client.Tables.MemoryRecordSnapshot.Equals(CheatEngine.Client.Tables.MemoryRecordSnapshot other) -> bool -CheatEngine.Client.Tables.MemoryRecordSnapshot.Id.get -> CheatEngine.SDK.Engine.AddressList.MemoryRecordId -CheatEngine.Client.Tables.MemoryRecordSnapshot.Index.get -> int -CheatEngine.Client.Tables.MemoryRecordSnapshot.MemoryRecordSnapshot() -> void -CheatEngine.Client.Tables.MemoryRecordSnapshot.MemoryRecordSnapshot(CheatEngine.SDK.Engine.AddressList.MemoryRecordId id, int index, CheatEngine.Client.Tables.MemoryRecordContentSnapshot content, CheatEngine.Client.Tables.MemoryRecordStateSnapshot state) -> void -CheatEngine.Client.Tables.MemoryRecordSnapshot.State.get -> CheatEngine.Client.Tables.MemoryRecordStateSnapshot -CheatEngine.Client.Tables.MemoryRecordStateSnapshot -CheatEngine.Client.Tables.MemoryRecordStateSnapshot.ChildCount.get -> int -CheatEngine.Client.Tables.MemoryRecordStateSnapshot.CurrentAddress.get -> CheatEngine.SDK.Engine.Values.Address? -CheatEngine.Client.Tables.MemoryRecordStateSnapshot.Equals(CheatEngine.Client.Tables.MemoryRecordStateSnapshot other) -> bool -CheatEngine.Client.Tables.MemoryRecordStateSnapshot.IsActive.get -> bool -CheatEngine.Client.Tables.MemoryRecordStateSnapshot.IsAsync.get -> bool -CheatEngine.Client.Tables.MemoryRecordStateSnapshot.IsAsyncProcessing.get -> bool -CheatEngine.Client.Tables.MemoryRecordStateSnapshot.MemoryRecordStateSnapshot() -> void -CheatEngine.Client.Tables.MemoryRecordStateSnapshot.MemoryRecordStateSnapshot(CheatEngine.SDK.Engine.Values.Address? currentAddress, bool isActive = false, int childCount = 0, bool isAsync = false, bool isAsyncProcessing = false) -> void -CheatEngine.Client.Tables.MemoryRecordUpdate -CheatEngine.Client.Tables.MemoryRecordUpdate.AddressExpression.get -> string? -CheatEngine.Client.Tables.MemoryRecordUpdate.Description.get -> string? -CheatEngine.Client.Tables.MemoryRecordUpdate.Equals(CheatEngine.Client.Tables.MemoryRecordUpdate other) -> bool -CheatEngine.Client.Tables.MemoryRecordUpdate.MemoryRecordUpdate() -> void -CheatEngine.Client.Tables.MemoryRecordUpdate.MemoryRecordUpdate(string? description = null, string? addressExpression = null, string? value = null, CheatEngine.SDK.Engine.Enums.VariableType? variableType = null) -> void -CheatEngine.Client.Tables.MemoryRecordUpdate.Value.get -> string? -CheatEngine.Client.Tables.MemoryRecordUpdate.VariableType.get -> CheatEngine.SDK.Engine.Enums.VariableType? -CheatEngine.Client.Tables.TableLoadRequest -CheatEngine.Client.Tables.TableLoadRequest.Equals(CheatEngine.Client.Tables.TableLoadRequest other) -> bool -CheatEngine.Client.Tables.TableLoadRequest.File.get -> CheatEngine.Client.Tables.TrustedTableFile -CheatEngine.Client.Tables.TableLoadRequest.Merge.get -> bool -CheatEngine.Client.Tables.TableLoadRequest.TableLoadRequest() -> void -CheatEngine.Client.Tables.TableLoadRequest.TableLoadRequest(CheatEngine.Client.Tables.TrustedTableFile file, bool merge = false) -> void -CheatEngine.Client.Tables.TableSaveRequest -CheatEngine.Client.Tables.TableSaveRequest.Equals(CheatEngine.Client.Tables.TableSaveRequest other) -> bool -CheatEngine.Client.Tables.TableSaveRequest.File.get -> CheatEngine.Client.Tables.TrustedTableFile -CheatEngine.Client.Tables.TableSaveRequest.TableSaveRequest() -> void -CheatEngine.Client.Tables.TableSaveRequest.TableSaveRequest(CheatEngine.Client.Tables.TrustedTableFile file) -> void -CheatEngine.Client.Tables.TrustedTableFile -CheatEngine.Client.Tables.TrustedTableFile.Equals(CheatEngine.Client.Tables.TrustedTableFile other) -> bool -CheatEngine.Client.Tables.TrustedTableFile.FullPath.get -> string! -CheatEngine.Client.Tables.TrustedTableFile.TrustedTableFile() -> void -CheatEngine.Client.Tables.TrustedTableFile.TrustedTableFile(string! path) -> void -[CECLIENT5001]CheatEngine.Client.ICheatEngineClient.ValueScans.get -> CheatEngine.Client.Scanning.IValueScanner! -[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession -[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession.FirstScan(CheatEngine.Client.Scanning.ValueScanFirstRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void -[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession.GetResultCount(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> ulong -[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession.Invalidation.get -> CheatEngine.Client.Scanning.ValueScanInvalidationKind -[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession.NextScan(CheatEngine.Client.Scanning.ValueScanNextRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void -[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession.Read(CheatEngine.Client.Scanning.ValueScanReadRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Scanning.ValueScanPage -[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession.Reset(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void -[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession.SelectionEpoch.get -> long -[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession.State.get -> CheatEngine.Client.Scanning.ValueScanSessionState -[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession.TryFirstScan(CheatEngine.Client.Scanning.ValueScanFirstRequest request, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession.TryGetResultCount(out ulong resultCount, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession.TryNextScan(CheatEngine.Client.Scanning.ValueScanNextRequest request, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession.TryRead(CheatEngine.Client.Scanning.ValueScanReadRequest request, out CheatEngine.Client.Scanning.ValueScanPage page, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanSession.TryReset(out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanner -[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanner.CreateSession(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Scanning.IValueScanSession! -[CECLIENT5001]CheatEngine.Client.Scanning.IValueScanner.TryCreateSession(out CheatEngine.Client.Scanning.IValueScanSession? session, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanComparison -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanComparison.Between = 1 -> CheatEngine.Client.Scanning.ValueScanComparison -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanComparison.BiggerThan = 2 -> CheatEngine.Client.Scanning.ValueScanComparison -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanComparison.Changed = 9 -> CheatEngine.Client.Scanning.ValueScanComparison -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanComparison.Decreased = 7 -> CheatEngine.Client.Scanning.ValueScanComparison -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanComparison.DecreasedBy = 8 -> CheatEngine.Client.Scanning.ValueScanComparison -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanComparison.Exact = 0 -> CheatEngine.Client.Scanning.ValueScanComparison -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanComparison.Increased = 5 -> CheatEngine.Client.Scanning.ValueScanComparison -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanComparison.IncreasedBy = 6 -> CheatEngine.Client.Scanning.ValueScanComparison -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanComparison.SmallerThan = 3 -> CheatEngine.Client.Scanning.ValueScanComparison -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanComparison.Unchanged = 10 -> CheatEngine.Client.Scanning.ValueScanComparison -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanComparison.UnknownInitialValue = 4 -> CheatEngine.Client.Scanning.ValueScanComparison -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest.Alignment.get -> CheatEngine.Client.Scanning.ScanAlignment -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest.Comparison.get -> CheatEngine.Client.Scanning.ValueScanComparison -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest.Equals(CheatEngine.Client.Scanning.ValueScanFirstRequest other) -> bool -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest.Protection.get -> CheatEngine.Client.Scanning.ScanProtectionFilter -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest.StartAddress.get -> CheatEngine.SDK.Engine.Values.Address -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest.StopAddress.get -> CheatEngine.SDK.Engine.Values.Address -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest.UpperValue.get -> CheatEngine.Client.Scanning.ValueScanValue? -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest.Value.get -> CheatEngine.Client.Scanning.ValueScanValue? -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest.ValueScanFirstRequest() -> void -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest.ValueType.get -> CheatEngine.Client.Scanning.ValueScanValueType -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest.WithAlignment(CheatEngine.Client.Scanning.ScanAlignment alignment) -> CheatEngine.Client.Scanning.ValueScanFirstRequest -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest.WithProtection(CheatEngine.Client.Scanning.ScanProtectionFilter protection) -> CheatEngine.Client.Scanning.ValueScanFirstRequest -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanFirstRequest.WithRange(CheatEngine.SDK.Engine.Values.Address startAddress, CheatEngine.SDK.Engine.Values.Address stopAddress) -> CheatEngine.Client.Scanning.ValueScanFirstRequest -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanInvalidationKind -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanInvalidationKind.HostCallFailed = 2 -> CheatEngine.Client.Scanning.ValueScanInvalidationKind -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanInvalidationKind.None = 1 -> CheatEngine.Client.Scanning.ValueScanInvalidationKind -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanInvalidationKind.RuntimeChanged = 3 -> CheatEngine.Client.Scanning.ValueScanInvalidationKind -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanInvalidationKind.TargetChanged = 4 -> CheatEngine.Client.Scanning.ValueScanInvalidationKind -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanInvalidationKind.Unknown = 0 -> CheatEngine.Client.Scanning.ValueScanInvalidationKind -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanMatch -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanMatch.Address.get -> CheatEngine.SDK.Engine.Values.Address -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanMatch.Equals(CheatEngine.Client.Scanning.ValueScanMatch other) -> bool -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanMatch.ValueScanMatch() -> void -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanMatch.ValueScanMatch(CheatEngine.SDK.Engine.Values.Address address, string! valueText) -> void -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanMatch.ValueText.get -> string! -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanNextRequest -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanNextRequest.Comparison.get -> CheatEngine.Client.Scanning.ValueScanComparison -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanNextRequest.Equals(CheatEngine.Client.Scanning.ValueScanNextRequest other) -> bool -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanNextRequest.UpperValue.get -> CheatEngine.Client.Scanning.ValueScanValue? -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanNextRequest.Value.get -> CheatEngine.Client.Scanning.ValueScanValue? -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanNextRequest.ValueScanNextRequest() -> void -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanPage -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanPage.HasMore.get -> bool -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanPage.Matches.get -> System.Collections.Immutable.ImmutableArray -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanPage.NextStartIndex.get -> long -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanPage.ResultCount.get -> ulong -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanPage.StartIndex.get -> long -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanPage.ValueScanPage() -> void -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanPage.ValueScanPage(long startIndex, ulong resultCount, System.Collections.Immutable.ImmutableArray matches) -> void -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanReadRequest -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanReadRequest.Equals(CheatEngine.Client.Scanning.ValueScanReadRequest other) -> bool -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanReadRequest.MaximumCount.get -> int -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanReadRequest.StartIndex.get -> long -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanReadRequest.ValueScanReadRequest() -> void -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanReadRequest.ValueScanReadRequest(long startIndex, int maximumCount) -> void -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanSessionState -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanSessionState.Closed = 5 -> CheatEngine.Client.Scanning.ValueScanSessionState -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanSessionState.Created = 1 -> CheatEngine.Client.Scanning.ValueScanSessionState -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanSessionState.Invalidated = 4 -> CheatEngine.Client.Scanning.ValueScanSessionState -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanSessionState.ResultsReady = 3 -> CheatEngine.Client.Scanning.ValueScanSessionState -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanSessionState.Scanning = 2 -> CheatEngine.Client.Scanning.ValueScanSessionState -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanSessionState.Unknown = 0 -> CheatEngine.Client.Scanning.ValueScanSessionState -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValue -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValue.Equals(CheatEngine.Client.Scanning.ValueScanValue other) -> bool -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValue.IsNumeric.get -> bool -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValue.Text.get -> string? -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValue.ValueScanValue() -> void -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValue.ValueType.get -> CheatEngine.Client.Scanning.ValueScanValueType -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValueType -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValueType.ByteArray = 8 -> CheatEngine.Client.Scanning.ValueScanValueType -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValueType.DoubleFloat = 5 -> CheatEngine.Client.Scanning.ValueScanValueType -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValueType.Integer16 = 1 -> CheatEngine.Client.Scanning.ValueScanValueType -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValueType.Integer32 = 2 -> CheatEngine.Client.Scanning.ValueScanValueType -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValueType.Integer64 = 3 -> CheatEngine.Client.Scanning.ValueScanValueType -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValueType.Integer8 = 0 -> CheatEngine.Client.Scanning.ValueScanValueType -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValueType.SingleFloat = 4 -> CheatEngine.Client.Scanning.ValueScanValueType -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValueType.Utf16String = 7 -> CheatEngine.Client.Scanning.ValueScanValueType -[CECLIENT5001]CheatEngine.Client.Scanning.ValueScanValueType.Utf8String = 6 -> CheatEngine.Client.Scanning.ValueScanValueType -[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanFirstRequest.GetHashCode() -> int -[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanMatch.GetHashCode() -> int -[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanNextRequest.GetHashCode() -> int -[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanReadRequest.GetHashCode() -> int -[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanValue.GetHashCode() -> int -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanFirstRequest.Between(CheatEngine.Client.Scanning.ValueScanValue lowest, CheatEngine.Client.Scanning.ValueScanValue highest) -> CheatEngine.Client.Scanning.ValueScanFirstRequest -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanFirstRequest.BiggerThan(CheatEngine.Client.Scanning.ValueScanValue value) -> CheatEngine.Client.Scanning.ValueScanFirstRequest -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanFirstRequest.Exact(CheatEngine.Client.Scanning.ValueScanValue value) -> CheatEngine.Client.Scanning.ValueScanFirstRequest -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanFirstRequest.SmallerThan(CheatEngine.Client.Scanning.ValueScanValue value) -> CheatEngine.Client.Scanning.ValueScanFirstRequest -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanFirstRequest.UnknownInitialValue(CheatEngine.Client.Scanning.ValueScanValueType valueType) -> CheatEngine.Client.Scanning.ValueScanFirstRequest -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanFirstRequest.operator !=(CheatEngine.Client.Scanning.ValueScanFirstRequest left, CheatEngine.Client.Scanning.ValueScanFirstRequest right) -> bool -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanFirstRequest.operator ==(CheatEngine.Client.Scanning.ValueScanFirstRequest left, CheatEngine.Client.Scanning.ValueScanFirstRequest right) -> bool -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanMatch.operator !=(CheatEngine.Client.Scanning.ValueScanMatch left, CheatEngine.Client.Scanning.ValueScanMatch right) -> bool -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanMatch.operator ==(CheatEngine.Client.Scanning.ValueScanMatch left, CheatEngine.Client.Scanning.ValueScanMatch right) -> bool -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanNextRequest.Between(CheatEngine.Client.Scanning.ValueScanValue lowest, CheatEngine.Client.Scanning.ValueScanValue highest) -> CheatEngine.Client.Scanning.ValueScanNextRequest -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanNextRequest.BiggerThan(CheatEngine.Client.Scanning.ValueScanValue value) -> CheatEngine.Client.Scanning.ValueScanNextRequest -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanNextRequest.Changed() -> CheatEngine.Client.Scanning.ValueScanNextRequest -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanNextRequest.Decreased() -> CheatEngine.Client.Scanning.ValueScanNextRequest -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanNextRequest.DecreasedBy(CheatEngine.Client.Scanning.ValueScanValue value) -> CheatEngine.Client.Scanning.ValueScanNextRequest -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanNextRequest.Exact(CheatEngine.Client.Scanning.ValueScanValue value) -> CheatEngine.Client.Scanning.ValueScanNextRequest -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanNextRequest.Increased() -> CheatEngine.Client.Scanning.ValueScanNextRequest -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanNextRequest.IncreasedBy(CheatEngine.Client.Scanning.ValueScanValue value) -> CheatEngine.Client.Scanning.ValueScanNextRequest -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanNextRequest.SmallerThan(CheatEngine.Client.Scanning.ValueScanValue value) -> CheatEngine.Client.Scanning.ValueScanNextRequest -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanNextRequest.Unchanged() -> CheatEngine.Client.Scanning.ValueScanNextRequest -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanNextRequest.operator !=(CheatEngine.Client.Scanning.ValueScanNextRequest left, CheatEngine.Client.Scanning.ValueScanNextRequest right) -> bool -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanNextRequest.operator ==(CheatEngine.Client.Scanning.ValueScanNextRequest left, CheatEngine.Client.Scanning.ValueScanNextRequest right) -> bool -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanReadRequest.operator !=(CheatEngine.Client.Scanning.ValueScanReadRequest left, CheatEngine.Client.Scanning.ValueScanReadRequest right) -> bool -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanReadRequest.operator ==(CheatEngine.Client.Scanning.ValueScanReadRequest left, CheatEngine.Client.Scanning.ValueScanReadRequest right) -> bool -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanValue.FromByte(byte value) -> CheatEngine.Client.Scanning.ValueScanValue -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanValue.FromBytes(System.ReadOnlySpan bytes) -> CheatEngine.Client.Scanning.ValueScanValue -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanValue.FromDouble(double value, int decimals) -> CheatEngine.Client.Scanning.ValueScanValue -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanValue.FromInt16(short value) -> CheatEngine.Client.Scanning.ValueScanValue -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanValue.FromInt32(int value) -> CheatEngine.Client.Scanning.ValueScanValue -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanValue.FromInt64(long value) -> CheatEngine.Client.Scanning.ValueScanValue -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanValue.FromSingle(float value, int decimals) -> CheatEngine.Client.Scanning.ValueScanValue -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanValue.FromUtf16String(string! text) -> CheatEngine.Client.Scanning.ValueScanValue -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanValue.FromUtf8String(string! text) -> CheatEngine.Client.Scanning.ValueScanValue -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanValue.operator !=(CheatEngine.Client.Scanning.ValueScanValue left, CheatEngine.Client.Scanning.ValueScanValue right) -> bool -[CECLIENT5001]static CheatEngine.Client.Scanning.ValueScanValue.operator ==(CheatEngine.Client.Scanning.ValueScanValue left, CheatEngine.Client.Scanning.ValueScanValue right) -> bool -[CECLIENT5002]CheatEngine.Client.Allocations.AllocationProtection -[CECLIENT5002]CheatEngine.Client.Allocations.AllocationProtection.ExecuteReadWrite = 1 -> CheatEngine.Client.Allocations.AllocationProtection -[CECLIENT5002]CheatEngine.Client.Allocations.AllocationProtection.ReadWrite = 0 -> CheatEngine.Client.Allocations.AllocationProtection -[CECLIENT5002]CheatEngine.Client.Allocations.AllocationRequest -[CECLIENT5002]CheatEngine.Client.Allocations.AllocationRequest.AllocationRequest() -> void -[CECLIENT5002]CheatEngine.Client.Allocations.AllocationRequest.AllocationRequest(long size, CheatEngine.Client.Allocations.AllocationProtection protection = CheatEngine.Client.Allocations.AllocationProtection.ReadWrite, CheatEngine.SDK.Engine.Values.Address? preferredAddress = null) -> void -[CECLIENT5002]CheatEngine.Client.Allocations.AllocationRequest.Equals(CheatEngine.Client.Allocations.AllocationRequest other) -> bool -[CECLIENT5002]CheatEngine.Client.Allocations.AllocationRequest.PreferredAddress.get -> CheatEngine.SDK.Engine.Values.Address? -[CECLIENT5002]CheatEngine.Client.Allocations.AllocationRequest.Protection.get -> CheatEngine.Client.Allocations.AllocationProtection -[CECLIENT5002]CheatEngine.Client.Allocations.AllocationRequest.Size.get -> long -[CECLIENT5002]CheatEngine.Client.Allocations.IAllocationClient -[CECLIENT5002]CheatEngine.Client.Allocations.IAllocationClient.Allocate(CheatEngine.Client.Allocations.AllocationRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Allocations.ITargetMemoryLease! -[CECLIENT5002]CheatEngine.Client.Allocations.IAllocationClient.TryAllocate(CheatEngine.Client.Allocations.AllocationRequest request, out CheatEngine.Client.Allocations.ITargetMemoryLease? lease, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -[CECLIENT5002]CheatEngine.Client.Allocations.ITargetMemoryLease -[CECLIENT5002]CheatEngine.Client.Allocations.ITargetMemoryLease.Address.get -> CheatEngine.SDK.Engine.Values.Address -[CECLIENT5002]CheatEngine.Client.Allocations.ITargetMemoryLease.Protection.get -> CheatEngine.Client.Allocations.AllocationProtection -[CECLIENT5002]CheatEngine.Client.Allocations.ITargetMemoryLease.SelectionEpoch.get -> long -[CECLIENT5002]CheatEngine.Client.Allocations.ITargetMemoryLease.Size.get -> long -[CECLIENT5002]CheatEngine.Client.ICheatEngineClient.Allocations.get -> CheatEngine.Client.Allocations.IAllocationClient! -[CECLIENT5002]override CheatEngine.Client.Allocations.AllocationRequest.GetHashCode() -> int -[CECLIENT5002]static CheatEngine.Client.Allocations.AllocationRequest.operator !=(CheatEngine.Client.Allocations.AllocationRequest left, CheatEngine.Client.Allocations.AllocationRequest right) -> bool -[CECLIENT5002]static CheatEngine.Client.Allocations.AllocationRequest.operator ==(CheatEngine.Client.Allocations.AllocationRequest left, CheatEngine.Client.Allocations.AllocationRequest right) -> bool -[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionRequest -[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionRequest.Address.get -> CheatEngine.SDK.Engine.Values.Address -[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionRequest.AssemblyInstructionRequest() -> void -[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionRequest.AssemblyInstructionRequest(CheatEngine.SDK.Engine.Values.Address address, string! instruction, CheatEngine.Client.Assembly.InstructionEncodingPreference preference = CheatEngine.Client.Assembly.InstructionEncodingPreference.None, bool skipRangeCheck = false) -> void -[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionRequest.Equals(CheatEngine.Client.Assembly.AssemblyInstructionRequest other) -> bool -[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionRequest.Instruction.get -> string! -[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionRequest.Preference.get -> CheatEngine.Client.Assembly.InstructionEncodingPreference -[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionRequest.SkipRangeCheck.get -> bool -[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionSnapshot -[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionSnapshot.Address.get -> CheatEngine.SDK.Engine.Values.Address -[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionSnapshot.AddressText.get -> string! -[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionSnapshot.AssemblyInstructionSnapshot() -> void -[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionSnapshot.AssemblyInstructionSnapshot(CheatEngine.SDK.Engine.Values.Address address, int length, string! addressText, string! opcode, string! extra, System.ReadOnlySpan bytes) -> void -[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionSnapshot.Bytes.get -> System.Collections.Immutable.ImmutableArray -[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionSnapshot.Extra.get -> string! -[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionSnapshot.Length.get -> int -[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionSnapshot.Opcode.get -> string! -[CECLIENT5003]CheatEngine.Client.Assembly.AssemblyInstructionSnapshot.Text.get -> string! -[CECLIENT5003]CheatEngine.Client.Assembly.IAssemblyClient -[CECLIENT5003]CheatEngine.Client.Assembly.IAssemblyClient.Assemble(CheatEngine.Client.Assembly.AssemblyInstructionRequest request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Immutable.ImmutableArray -[CECLIENT5003]CheatEngine.Client.Assembly.IAssemblyClient.Disassemble(CheatEngine.SDK.Engine.Values.Address address, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Assembly.AssemblyInstructionSnapshot -[CECLIENT5003]CheatEngine.Client.Assembly.IAssemblyClient.GetInstructionLength(CheatEngine.SDK.Engine.Values.Address address, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> int -[CECLIENT5003]CheatEngine.Client.Assembly.IAssemblyClient.GetPreviousInstructionAddress(CheatEngine.SDK.Engine.Values.Address address, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.SDK.Engine.Values.Address -[CECLIENT5003]CheatEngine.Client.Assembly.IAssemblyClient.TryAssemble(CheatEngine.Client.Assembly.AssemblyInstructionRequest request, out System.Collections.Immutable.ImmutableArray bytes, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -[CECLIENT5003]CheatEngine.Client.Assembly.IAssemblyClient.TryDisassemble(CheatEngine.SDK.Engine.Values.Address address, out CheatEngine.Client.Assembly.AssemblyInstructionSnapshot instruction, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -[CECLIENT5003]CheatEngine.Client.Assembly.IAssemblyClient.TryGetInstructionLength(CheatEngine.SDK.Engine.Values.Address address, out int length, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -[CECLIENT5003]CheatEngine.Client.Assembly.IAssemblyClient.TryGetPreviousInstructionAddress(CheatEngine.SDK.Engine.Values.Address address, out CheatEngine.SDK.Engine.Values.Address previousAddress, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -[CECLIENT5003]CheatEngine.Client.Assembly.InstructionEncodingPreference -[CECLIENT5003]CheatEngine.Client.Assembly.InstructionEncodingPreference.Far = 3 -> CheatEngine.Client.Assembly.InstructionEncodingPreference -[CECLIENT5003]CheatEngine.Client.Assembly.InstructionEncodingPreference.Long = 2 -> CheatEngine.Client.Assembly.InstructionEncodingPreference -[CECLIENT5003]CheatEngine.Client.Assembly.InstructionEncodingPreference.None = 0 -> CheatEngine.Client.Assembly.InstructionEncodingPreference -[CECLIENT5003]CheatEngine.Client.Assembly.InstructionEncodingPreference.Short = 1 -> CheatEngine.Client.Assembly.InstructionEncodingPreference -[CECLIENT5003]CheatEngine.Client.ICheatEngineClient.Assembly.get -> CheatEngine.Client.Assembly.IAssemblyClient! -[CECLIENT5003]override CheatEngine.Client.Assembly.AssemblyInstructionRequest.GetHashCode() -> int -[CECLIENT5003]static CheatEngine.Client.Assembly.AssemblyInstructionRequest.operator !=(CheatEngine.Client.Assembly.AssemblyInstructionRequest left, CheatEngine.Client.Assembly.AssemblyInstructionRequest right) -> bool -[CECLIENT5003]static CheatEngine.Client.Assembly.AssemblyInstructionRequest.operator ==(CheatEngine.Client.Assembly.AssemblyInstructionRequest left, CheatEngine.Client.Assembly.AssemblyInstructionRequest right) -> bool -[CECLIENT5004]CheatEngine.Client.Assembly.AutoAssemblerCheckResult -[CECLIENT5004]CheatEngine.Client.Assembly.AutoAssemblerCheckResult.AutoAssemblerCheckResult() -> void -[CECLIENT5004]CheatEngine.Client.Assembly.AutoAssemblerCheckResult.AutoAssemblerCheckResult(bool isAccepted, string? hostMessages, bool hostMessagesTruncated) -> void -[CECLIENT5004]CheatEngine.Client.Assembly.AutoAssemblerCheckResult.Equals(CheatEngine.Client.Assembly.AutoAssemblerCheckResult other) -> bool -[CECLIENT5004]CheatEngine.Client.Assembly.AutoAssemblerCheckResult.HostMessages.get -> string? -[CECLIENT5004]CheatEngine.Client.Assembly.AutoAssemblerCheckResult.HostMessagesTruncated.get -> bool -[CECLIENT5004]CheatEngine.Client.Assembly.AutoAssemblerCheckResult.IsAccepted.get -> bool -[CECLIENT5004]CheatEngine.Client.Assembly.AutoAssemblerScript -[CECLIENT5004]CheatEngine.Client.Assembly.AutoAssemblerScript.AutoAssemblerScript() -> void -[CECLIENT5004]CheatEngine.Client.Assembly.AutoAssemblerScript.AutoAssemblerScript(string! source, string? name = null) -> void -[CECLIENT5004]CheatEngine.Client.Assembly.AutoAssemblerScript.Equals(CheatEngine.Client.Assembly.AutoAssemblerScript other) -> bool -[CECLIENT5004]CheatEngine.Client.Assembly.AutoAssemblerScript.Name.get -> string? -[CECLIENT5004]CheatEngine.Client.Assembly.AutoAssemblerScript.Source.get -> string! -[CECLIENT5004]CheatEngine.Client.Assembly.IAutoAssemblerClient -[CECLIENT5004]CheatEngine.Client.Assembly.IAutoAssemblerClient.ApplyPatch(CheatEngine.Client.Assembly.AutoAssemblerScript script, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Assembly.IAutoAssemblerPatchLease! -[CECLIENT5004]CheatEngine.Client.Assembly.IAutoAssemblerClient.Check(CheatEngine.Client.Assembly.AutoAssemblerScript script, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Assembly.AutoAssemblerCheckResult -[CECLIENT5004]CheatEngine.Client.Assembly.IAutoAssemblerClient.TryApplyPatch(CheatEngine.Client.Assembly.AutoAssemblerScript script, out CheatEngine.Client.Assembly.IAutoAssemblerPatchLease? lease, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -[CECLIENT5004]CheatEngine.Client.Assembly.IAutoAssemblerClient.TryCheck(CheatEngine.Client.Assembly.AutoAssemblerScript script, out CheatEngine.Client.Assembly.AutoAssemblerCheckResult result, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -[CECLIENT5004]CheatEngine.Client.Assembly.IAutoAssemblerPatchLease -[CECLIENT5004]CheatEngine.Client.Assembly.IAutoAssemblerPatchLease.AppliedAfterTargetChange.get -> bool -[CECLIENT5004]CheatEngine.Client.Assembly.IAutoAssemblerPatchLease.CanDisable.get -> bool -[CECLIENT5004]CheatEngine.Client.Assembly.IAutoAssemblerPatchLease.HostWarnings.get -> string? -[CECLIENT5004]CheatEngine.Client.Assembly.IAutoAssemblerPatchLease.HostWarningsTruncated.get -> bool -[CECLIENT5004]CheatEngine.Client.Assembly.IAutoAssemblerPatchLease.Name.get -> string? -[CECLIENT5004]CheatEngine.Client.Assembly.IAutoAssemblerPatchLease.SelectionEpoch.get -> long -[CECLIENT5004]override CheatEngine.Client.Assembly.AutoAssemblerCheckResult.GetHashCode() -> int -[CECLIENT5004]override CheatEngine.Client.Assembly.AutoAssemblerCheckResult.ToString() -> string! -[CECLIENT5004]override CheatEngine.Client.Assembly.AutoAssemblerScript.GetHashCode() -> int -[CECLIENT5004]static CheatEngine.Client.Assembly.AutoAssemblerCheckResult.operator !=(CheatEngine.Client.Assembly.AutoAssemblerCheckResult left, CheatEngine.Client.Assembly.AutoAssemblerCheckResult right) -> bool -[CECLIENT5004]static CheatEngine.Client.Assembly.AutoAssemblerCheckResult.operator ==(CheatEngine.Client.Assembly.AutoAssemblerCheckResult left, CheatEngine.Client.Assembly.AutoAssemblerCheckResult right) -> bool -[CECLIENT5004]static CheatEngine.Client.Assembly.AutoAssemblerScript.operator !=(CheatEngine.Client.Assembly.AutoAssemblerScript left, CheatEngine.Client.Assembly.AutoAssemblerScript right) -> bool -[CECLIENT5004]static CheatEngine.Client.Assembly.AutoAssemblerScript.operator ==(CheatEngine.Client.Assembly.AutoAssemblerScript left, CheatEngine.Client.Assembly.AutoAssemblerScript right) -> bool -const CheatEngine.Client.Memory.MemoryBatchLimits.MaximumOperationCount = 1024 -> int -const CheatEngine.Client.Memory.MemoryResourceLimits.DefaultMaximumBatchOperationCount = 1024 -> int -const CheatEngine.Client.Memory.MemoryResourceLimits.DefaultMaximumBatchPayloadBytes = 65536 -> int -const CheatEngine.Client.Memory.MemoryResourceLimits.DefaultMaximumReadBytes = 1048576 -> int -const CheatEngine.Client.Memory.MemoryResourceLimits.DefaultMaximumStringBytes = 65536 -> int -const CheatEngine.Client.Memory.MemoryResourceLimits.DefaultMaximumWriteBytes = 1048576 -> int -override CheatEngine.Client.Inspection.InspectionCollectionRequest.GetHashCode() -> int -override CheatEngine.Client.Inspection.SymbolRegistration.GetHashCode() -> int -override CheatEngine.Client.Lua.LuaExportDescriptor.GetHashCode() -> int -override CheatEngine.Client.Lua.LuaModuleReleaseOutcome.ToString() -> string! -override CheatEngine.Client.Lua.LuaScript.GetHashCode() -> int -override CheatEngine.Client.Memory.MemoryBytesReadRequest.GetHashCode() -> int -override CheatEngine.Client.Memory.MemoryReadRequest.GetHashCode() -> int -override CheatEngine.Client.Memory.MemoryStringReadRequest.GetHashCode() -> int -override CheatEngine.Client.Memory.MemoryStringWriteRequest.GetHashCode() -> int -override CheatEngine.Client.Memory.MemoryWriteRequest.GetHashCode() -> int -override CheatEngine.Client.Processes.LocalProcessEnumerationRequest.GetHashCode() -> int -override CheatEngine.Client.Processes.LocalProcessId.GetHashCode() -> int -override CheatEngine.Client.Processes.LocalProcessSnapshot.GetHashCode() -> int -override CheatEngine.Client.Processes.ProcessSnapshot.GetHashCode() -> int -override CheatEngine.Client.Results.CheatEngineFailure.GetHashCode() -> int -override CheatEngine.Client.Results.CheatEngineFailure.ToString() -> string! -override CheatEngine.Client.Results.LeaseReleaseOutcome.GetHashCode() -> int -override CheatEngine.Client.Results.LeaseReleaseOutcome.ToString() -> string! -override CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.GetHashCode() -> int -override CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot.GetHashCode() -> int -override CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.GetHashCode() -> int -override CheatEngine.Client.Runtime.ClientCapabilities.Equals(object? obj) -> bool -override CheatEngine.Client.Runtime.ClientCapabilities.GetHashCode() -> int -override CheatEngine.Client.Runtime.ClientCapabilityAvailability.GetHashCode() -> int -override CheatEngine.Client.Runtime.ClientCapabilityEvidence.GetHashCode() -> int -override CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate.GetHashCode() -> int -override CheatEngine.Client.Runtime.ClientCapabilityId.Equals(object? obj) -> bool -override CheatEngine.Client.Runtime.ClientCapabilityId.GetHashCode() -> int -override CheatEngine.Client.Runtime.ClientCapabilityId.ToString() -> string! -override CheatEngine.Client.Scanning.AobPattern.GetHashCode() -> int -override CheatEngine.Client.Scanning.AobPattern.ToString() -> string! -override CheatEngine.Client.Scanning.AobScanRange.GetHashCode() -> int -override CheatEngine.Client.Scanning.AobScanRequest.GetHashCode() -> int -override CheatEngine.Client.Scanning.PatternScanMetrics.GetHashCode() -> int -override CheatEngine.Client.Scanning.ScanAlignment.GetHashCode() -> int -override CheatEngine.Client.Scanning.ScanProtectionFilter.GetHashCode() -> int -override CheatEngine.Client.Tables.MemoryRecordCollectionRequest.GetHashCode() -> int -override CheatEngine.Client.Tables.MemoryRecordContentSnapshot.GetHashCode() -> int -override CheatEngine.Client.Tables.MemoryRecordDefinition.GetHashCode() -> int -override CheatEngine.Client.Tables.MemoryRecordHierarchyRequest.GetHashCode() -> int -override CheatEngine.Client.Tables.MemoryRecordSearch.GetHashCode() -> int -override CheatEngine.Client.Tables.MemoryRecordSnapshot.GetHashCode() -> int -override CheatEngine.Client.Tables.MemoryRecordStateSnapshot.GetHashCode() -> int -override CheatEngine.Client.Tables.MemoryRecordUpdate.GetHashCode() -> int -override CheatEngine.Client.Tables.TableLoadRequest.GetHashCode() -> int -override CheatEngine.Client.Tables.TableSaveRequest.GetHashCode() -> int -override CheatEngine.Client.Tables.TrustedTableFile.GetHashCode() -> int -static CheatEngine.Client.Inspection.InspectionCollectionRequest.operator !=(CheatEngine.Client.Inspection.InspectionCollectionRequest left, CheatEngine.Client.Inspection.InspectionCollectionRequest right) -> bool -static CheatEngine.Client.Inspection.InspectionCollectionRequest.operator ==(CheatEngine.Client.Inspection.InspectionCollectionRequest left, CheatEngine.Client.Inspection.InspectionCollectionRequest right) -> bool -static CheatEngine.Client.Inspection.SymbolRegistration.operator !=(CheatEngine.Client.Inspection.SymbolRegistration left, CheatEngine.Client.Inspection.SymbolRegistration right) -> bool -static CheatEngine.Client.Inspection.SymbolRegistration.operator ==(CheatEngine.Client.Inspection.SymbolRegistration left, CheatEngine.Client.Inspection.SymbolRegistration right) -> bool -static CheatEngine.Client.Lua.LuaExportDescriptor.operator !=(CheatEngine.Client.Lua.LuaExportDescriptor left, CheatEngine.Client.Lua.LuaExportDescriptor right) -> bool -static CheatEngine.Client.Lua.LuaExportDescriptor.operator ==(CheatEngine.Client.Lua.LuaExportDescriptor left, CheatEngine.Client.Lua.LuaExportDescriptor right) -> bool -static CheatEngine.Client.Lua.LuaModuleReleaseOutcome.AlreadyReleased(string! moduleName) -> CheatEngine.Client.Lua.LuaModuleReleaseOutcome! -static CheatEngine.Client.Lua.LuaModuleReleaseOutcome.CleanupUnavailable(string! moduleName, int remainingCount) -> CheatEngine.Client.Lua.LuaModuleReleaseOutcome! -static CheatEngine.Client.Lua.LuaModuleReleaseOutcome.Create(string! moduleName, CheatEngine.Client.Results.LeaseReleaseKind kind, int removedCount, int restoredCount, int replacementCount, int remainingCount, System.Collections.Immutable.ImmutableArray failedExports) -> CheatEngine.Client.Lua.LuaModuleReleaseOutcome! -static CheatEngine.Client.Lua.LuaModuleReleaseOutcome.PartiallyReleased(string! moduleName, int removedCount, int restoredCount, int replacementCount, System.Collections.Immutable.ImmutableArray failedExports) -> CheatEngine.Client.Lua.LuaModuleReleaseOutcome! -static CheatEngine.Client.Lua.LuaModuleReleaseOutcome.RefusedRuntimeChanged(string! moduleName, int remainingCount) -> CheatEngine.Client.Lua.LuaModuleReleaseOutcome! -static CheatEngine.Client.Lua.LuaModuleReleaseOutcome.Released(string! moduleName, int removedCount, int restoredCount, int replacementCount) -> CheatEngine.Client.Lua.LuaModuleReleaseOutcome! -static CheatEngine.Client.Lua.LuaScript.operator !=(CheatEngine.Client.Lua.LuaScript left, CheatEngine.Client.Lua.LuaScript right) -> bool -static CheatEngine.Client.Lua.LuaScript.operator ==(CheatEngine.Client.Lua.LuaScript left, CheatEngine.Client.Lua.LuaScript right) -> bool -static CheatEngine.Client.Memory.MemoryBytesReadRequest.operator !=(CheatEngine.Client.Memory.MemoryBytesReadRequest left, CheatEngine.Client.Memory.MemoryBytesReadRequest right) -> bool -static CheatEngine.Client.Memory.MemoryBytesReadRequest.operator ==(CheatEngine.Client.Memory.MemoryBytesReadRequest left, CheatEngine.Client.Memory.MemoryBytesReadRequest right) -> bool -static CheatEngine.Client.Memory.MemoryReadRequest.operator !=(CheatEngine.Client.Memory.MemoryReadRequest left, CheatEngine.Client.Memory.MemoryReadRequest right) -> bool -static CheatEngine.Client.Memory.MemoryReadRequest.operator ==(CheatEngine.Client.Memory.MemoryReadRequest left, CheatEngine.Client.Memory.MemoryReadRequest right) -> bool -static CheatEngine.Client.Memory.MemoryStringReadRequest.operator !=(CheatEngine.Client.Memory.MemoryStringReadRequest left, CheatEngine.Client.Memory.MemoryStringReadRequest right) -> bool -static CheatEngine.Client.Memory.MemoryStringReadRequest.operator ==(CheatEngine.Client.Memory.MemoryStringReadRequest left, CheatEngine.Client.Memory.MemoryStringReadRequest right) -> bool -static CheatEngine.Client.Memory.MemoryStringWriteRequest.operator !=(CheatEngine.Client.Memory.MemoryStringWriteRequest left, CheatEngine.Client.Memory.MemoryStringWriteRequest right) -> bool -static CheatEngine.Client.Memory.MemoryStringWriteRequest.operator ==(CheatEngine.Client.Memory.MemoryStringWriteRequest left, CheatEngine.Client.Memory.MemoryStringWriteRequest right) -> bool -static CheatEngine.Client.Memory.MemoryWriteRequest.operator !=(CheatEngine.Client.Memory.MemoryWriteRequest left, CheatEngine.Client.Memory.MemoryWriteRequest right) -> bool -static CheatEngine.Client.Memory.MemoryWriteRequest.operator ==(CheatEngine.Client.Memory.MemoryWriteRequest left, CheatEngine.Client.Memory.MemoryWriteRequest right) -> bool -static CheatEngine.Client.Processes.LocalProcessEnumerationRequest.operator !=(CheatEngine.Client.Processes.LocalProcessEnumerationRequest left, CheatEngine.Client.Processes.LocalProcessEnumerationRequest right) -> bool -static CheatEngine.Client.Processes.LocalProcessEnumerationRequest.operator ==(CheatEngine.Client.Processes.LocalProcessEnumerationRequest left, CheatEngine.Client.Processes.LocalProcessEnumerationRequest right) -> bool -static CheatEngine.Client.Processes.LocalProcessId.operator !=(CheatEngine.Client.Processes.LocalProcessId left, CheatEngine.Client.Processes.LocalProcessId right) -> bool -static CheatEngine.Client.Processes.LocalProcessId.operator ==(CheatEngine.Client.Processes.LocalProcessId left, CheatEngine.Client.Processes.LocalProcessId right) -> bool -static CheatEngine.Client.Processes.LocalProcessSnapshot.operator !=(CheatEngine.Client.Processes.LocalProcessSnapshot left, CheatEngine.Client.Processes.LocalProcessSnapshot right) -> bool -static CheatEngine.Client.Processes.LocalProcessSnapshot.operator ==(CheatEngine.Client.Processes.LocalProcessSnapshot left, CheatEngine.Client.Processes.LocalProcessSnapshot right) -> bool -static CheatEngine.Client.Processes.ProcessSnapshot.operator !=(CheatEngine.Client.Processes.ProcessSnapshot left, CheatEngine.Client.Processes.ProcessSnapshot right) -> bool -static CheatEngine.Client.Processes.ProcessSnapshot.operator ==(CheatEngine.Client.Processes.ProcessSnapshot left, CheatEngine.Client.Processes.ProcessSnapshot right) -> bool -static CheatEngine.Client.Results.CheatEngineFailure.operator !=(CheatEngine.Client.Results.CheatEngineFailure left, CheatEngine.Client.Results.CheatEngineFailure right) -> bool -static CheatEngine.Client.Results.CheatEngineFailure.operator ==(CheatEngine.Client.Results.CheatEngineFailure left, CheatEngine.Client.Results.CheatEngineFailure right) -> bool -static CheatEngine.Client.Results.LeaseReleaseOutcome.operator !=(CheatEngine.Client.Results.LeaseReleaseOutcome left, CheatEngine.Client.Results.LeaseReleaseOutcome right) -> bool -static CheatEngine.Client.Results.LeaseReleaseOutcome.operator ==(CheatEngine.Client.Results.LeaseReleaseOutcome left, CheatEngine.Client.Results.LeaseReleaseOutcome right) -> bool -static CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.operator !=(CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo left, CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo right) -> bool -static CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.operator ==(CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo left, CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo right) -> bool -static CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot.operator !=(CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot left, CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot right) -> bool -static CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot.operator ==(CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot left, CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot right) -> bool -static CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.operator !=(CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo left, CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo right) -> bool -static CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.operator ==(CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo left, CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo right) -> bool -static CheatEngine.Client.Runtime.ClientCapabilities.Create(System.ReadOnlySpan entries) -> CheatEngine.Client.Runtime.ClientCapabilities! -static CheatEngine.Client.Runtime.ClientCapabilities.Empty.get -> CheatEngine.Client.Runtime.ClientCapabilities! -static CheatEngine.Client.Runtime.ClientCapabilityAvailability.operator !=(CheatEngine.Client.Runtime.ClientCapabilityAvailability left, CheatEngine.Client.Runtime.ClientCapabilityAvailability right) -> bool -static CheatEngine.Client.Runtime.ClientCapabilityAvailability.operator ==(CheatEngine.Client.Runtime.ClientCapabilityAvailability left, CheatEngine.Client.Runtime.ClientCapabilityAvailability right) -> bool -static CheatEngine.Client.Runtime.ClientCapabilityEvidence.operator !=(CheatEngine.Client.Runtime.ClientCapabilityEvidence left, CheatEngine.Client.Runtime.ClientCapabilityEvidence right) -> bool -static CheatEngine.Client.Runtime.ClientCapabilityEvidence.operator ==(CheatEngine.Client.Runtime.ClientCapabilityEvidence left, CheatEngine.Client.Runtime.ClientCapabilityEvidence right) -> bool -static CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate.operator !=(CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate left, CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate right) -> bool -static CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate.operator ==(CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate left, CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate right) -> bool -static CheatEngine.Client.Runtime.ClientCapabilityId.Allocations.get -> CheatEngine.Client.Runtime.ClientCapabilityId -static CheatEngine.Client.Runtime.ClientCapabilityId.Assembly.get -> CheatEngine.Client.Runtime.ClientCapabilityId -static CheatEngine.Client.Runtime.ClientCapabilityId.AutoAssemblerPatches.get -> CheatEngine.Client.Runtime.ClientCapabilityId -static CheatEngine.Client.Runtime.ClientCapabilityId.Inspection.get -> CheatEngine.Client.Runtime.ClientCapabilityId -static CheatEngine.Client.Runtime.ClientCapabilityId.PatternScanning.get -> CheatEngine.Client.Runtime.ClientCapabilityId -static CheatEngine.Client.Runtime.ClientCapabilityId.ProcessSelection.get -> CheatEngine.Client.Runtime.ClientCapabilityId -static CheatEngine.Client.Runtime.ClientCapabilityId.ProtectedLua.get -> CheatEngine.Client.Runtime.ClientCapabilityId -static CheatEngine.Client.Runtime.ClientCapabilityId.Tables.get -> CheatEngine.Client.Runtime.ClientCapabilityId -static CheatEngine.Client.Runtime.ClientCapabilityId.TypedMemory.get -> CheatEngine.Client.Runtime.ClientCapabilityId -static CheatEngine.Client.Runtime.ClientCapabilityId.UnsafeLuaExecution.get -> CheatEngine.Client.Runtime.ClientCapabilityId -static CheatEngine.Client.Runtime.ClientCapabilityId.ValueScanning.get -> CheatEngine.Client.Runtime.ClientCapabilityId -static CheatEngine.Client.Runtime.ClientCapabilityId.operator !=(CheatEngine.Client.Runtime.ClientCapabilityId left, CheatEngine.Client.Runtime.ClientCapabilityId right) -> bool -static CheatEngine.Client.Runtime.ClientCapabilityId.operator ==(CheatEngine.Client.Runtime.ClientCapabilityId left, CheatEngine.Client.Runtime.ClientCapabilityId right) -> bool -static CheatEngine.Client.Scanning.AobPattern.TryParse(string? value, out CheatEngine.Client.Scanning.AobPattern pattern) -> bool -static CheatEngine.Client.Scanning.AobPattern.operator !=(CheatEngine.Client.Scanning.AobPattern left, CheatEngine.Client.Scanning.AobPattern right) -> bool -static CheatEngine.Client.Scanning.AobPattern.operator ==(CheatEngine.Client.Scanning.AobPattern left, CheatEngine.Client.Scanning.AobPattern right) -> bool -static CheatEngine.Client.Scanning.AobScanRange.operator !=(CheatEngine.Client.Scanning.AobScanRange left, CheatEngine.Client.Scanning.AobScanRange right) -> bool -static CheatEngine.Client.Scanning.AobScanRange.operator ==(CheatEngine.Client.Scanning.AobScanRange left, CheatEngine.Client.Scanning.AobScanRange right) -> bool -static CheatEngine.Client.Scanning.AobScanRequest.operator !=(CheatEngine.Client.Scanning.AobScanRequest left, CheatEngine.Client.Scanning.AobScanRequest right) -> bool -static CheatEngine.Client.Scanning.AobScanRequest.operator ==(CheatEngine.Client.Scanning.AobScanRequest left, CheatEngine.Client.Scanning.AobScanRequest right) -> bool -static CheatEngine.Client.Scanning.PatternScanMetrics.operator !=(CheatEngine.Client.Scanning.PatternScanMetrics left, CheatEngine.Client.Scanning.PatternScanMetrics right) -> bool -static CheatEngine.Client.Scanning.PatternScanMetrics.operator ==(CheatEngine.Client.Scanning.PatternScanMetrics left, CheatEngine.Client.Scanning.PatternScanMetrics right) -> bool -static CheatEngine.Client.Scanning.ScanAlignment.AlignedTo(int divisor) -> CheatEngine.Client.Scanning.ScanAlignment -static CheatEngine.Client.Scanning.ScanAlignment.LastDigits(string! digits) -> CheatEngine.Client.Scanning.ScanAlignment -static CheatEngine.Client.Scanning.ScanAlignment.None.get -> CheatEngine.Client.Scanning.ScanAlignment -static CheatEngine.Client.Scanning.ScanAlignment.operator !=(CheatEngine.Client.Scanning.ScanAlignment left, CheatEngine.Client.Scanning.ScanAlignment right) -> bool -static CheatEngine.Client.Scanning.ScanAlignment.operator ==(CheatEngine.Client.Scanning.ScanAlignment left, CheatEngine.Client.Scanning.ScanAlignment right) -> bool -static CheatEngine.Client.Scanning.ScanProtectionFilter.operator !=(CheatEngine.Client.Scanning.ScanProtectionFilter left, CheatEngine.Client.Scanning.ScanProtectionFilter right) -> bool -static CheatEngine.Client.Scanning.ScanProtectionFilter.operator ==(CheatEngine.Client.Scanning.ScanProtectionFilter left, CheatEngine.Client.Scanning.ScanProtectionFilter right) -> bool -static CheatEngine.Client.Tables.MemoryRecordCollectionRequest.operator !=(CheatEngine.Client.Tables.MemoryRecordCollectionRequest left, CheatEngine.Client.Tables.MemoryRecordCollectionRequest right) -> bool -static CheatEngine.Client.Tables.MemoryRecordCollectionRequest.operator ==(CheatEngine.Client.Tables.MemoryRecordCollectionRequest left, CheatEngine.Client.Tables.MemoryRecordCollectionRequest right) -> bool -static CheatEngine.Client.Tables.MemoryRecordContentSnapshot.operator !=(CheatEngine.Client.Tables.MemoryRecordContentSnapshot left, CheatEngine.Client.Tables.MemoryRecordContentSnapshot right) -> bool -static CheatEngine.Client.Tables.MemoryRecordContentSnapshot.operator ==(CheatEngine.Client.Tables.MemoryRecordContentSnapshot left, CheatEngine.Client.Tables.MemoryRecordContentSnapshot right) -> bool -static CheatEngine.Client.Tables.MemoryRecordDefinition.operator !=(CheatEngine.Client.Tables.MemoryRecordDefinition left, CheatEngine.Client.Tables.MemoryRecordDefinition right) -> bool -static CheatEngine.Client.Tables.MemoryRecordDefinition.operator ==(CheatEngine.Client.Tables.MemoryRecordDefinition left, CheatEngine.Client.Tables.MemoryRecordDefinition right) -> bool -static CheatEngine.Client.Tables.MemoryRecordHierarchyRequest.operator !=(CheatEngine.Client.Tables.MemoryRecordHierarchyRequest left, CheatEngine.Client.Tables.MemoryRecordHierarchyRequest right) -> bool -static CheatEngine.Client.Tables.MemoryRecordHierarchyRequest.operator ==(CheatEngine.Client.Tables.MemoryRecordHierarchyRequest left, CheatEngine.Client.Tables.MemoryRecordHierarchyRequest right) -> bool -static CheatEngine.Client.Tables.MemoryRecordSearch.operator !=(CheatEngine.Client.Tables.MemoryRecordSearch left, CheatEngine.Client.Tables.MemoryRecordSearch right) -> bool -static CheatEngine.Client.Tables.MemoryRecordSearch.operator ==(CheatEngine.Client.Tables.MemoryRecordSearch left, CheatEngine.Client.Tables.MemoryRecordSearch right) -> bool -static CheatEngine.Client.Tables.MemoryRecordSnapshot.operator !=(CheatEngine.Client.Tables.MemoryRecordSnapshot left, CheatEngine.Client.Tables.MemoryRecordSnapshot right) -> bool -static CheatEngine.Client.Tables.MemoryRecordSnapshot.operator ==(CheatEngine.Client.Tables.MemoryRecordSnapshot left, CheatEngine.Client.Tables.MemoryRecordSnapshot right) -> bool -static CheatEngine.Client.Tables.MemoryRecordStateSnapshot.operator !=(CheatEngine.Client.Tables.MemoryRecordStateSnapshot left, CheatEngine.Client.Tables.MemoryRecordStateSnapshot right) -> bool -static CheatEngine.Client.Tables.MemoryRecordStateSnapshot.operator ==(CheatEngine.Client.Tables.MemoryRecordStateSnapshot left, CheatEngine.Client.Tables.MemoryRecordStateSnapshot right) -> bool -static CheatEngine.Client.Tables.MemoryRecordUpdate.operator !=(CheatEngine.Client.Tables.MemoryRecordUpdate left, CheatEngine.Client.Tables.MemoryRecordUpdate right) -> bool -static CheatEngine.Client.Tables.MemoryRecordUpdate.operator ==(CheatEngine.Client.Tables.MemoryRecordUpdate left, CheatEngine.Client.Tables.MemoryRecordUpdate right) -> bool -static CheatEngine.Client.Tables.TableLoadRequest.operator !=(CheatEngine.Client.Tables.TableLoadRequest left, CheatEngine.Client.Tables.TableLoadRequest right) -> bool -static CheatEngine.Client.Tables.TableLoadRequest.operator ==(CheatEngine.Client.Tables.TableLoadRequest left, CheatEngine.Client.Tables.TableLoadRequest right) -> bool -static CheatEngine.Client.Tables.TableSaveRequest.operator !=(CheatEngine.Client.Tables.TableSaveRequest left, CheatEngine.Client.Tables.TableSaveRequest right) -> bool -static CheatEngine.Client.Tables.TableSaveRequest.operator ==(CheatEngine.Client.Tables.TableSaveRequest left, CheatEngine.Client.Tables.TableSaveRequest right) -> bool -static CheatEngine.Client.Tables.TrustedTableFile.operator !=(CheatEngine.Client.Tables.TrustedTableFile left, CheatEngine.Client.Tables.TrustedTableFile right) -> bool -static CheatEngine.Client.Tables.TrustedTableFile.operator ==(CheatEngine.Client.Tables.TrustedTableFile left, CheatEngine.Client.Tables.TrustedTableFile right) -> bool -~[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanFirstRequest.Equals(object obj) -> bool -~[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanFirstRequest.ToString() -> string -~[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanMatch.Equals(object obj) -> bool -~[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanMatch.ToString() -> string -~[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanNextRequest.Equals(object obj) -> bool -~[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanNextRequest.ToString() -> string -~[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanReadRequest.Equals(object obj) -> bool -~[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanReadRequest.ToString() -> string -~[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanValue.Equals(object obj) -> bool -~[CECLIENT5001]override CheatEngine.Client.Scanning.ValueScanValue.ToString() -> string -~[CECLIENT5002]override CheatEngine.Client.Allocations.AllocationRequest.Equals(object obj) -> bool -~[CECLIENT5002]override CheatEngine.Client.Allocations.AllocationRequest.ToString() -> string -~[CECLIENT5003]override CheatEngine.Client.Assembly.AssemblyInstructionRequest.Equals(object obj) -> bool -~[CECLIENT5003]override CheatEngine.Client.Assembly.AssemblyInstructionRequest.ToString() -> string -~[CECLIENT5004]override CheatEngine.Client.Assembly.AutoAssemblerCheckResult.Equals(object obj) -> bool -~[CECLIENT5004]override CheatEngine.Client.Assembly.AutoAssemblerScript.Equals(object obj) -> bool -~[CECLIENT5004]override CheatEngine.Client.Assembly.AutoAssemblerScript.ToString() -> string -~override CheatEngine.Client.Inspection.InspectionCollectionRequest.Equals(object obj) -> bool -~override CheatEngine.Client.Inspection.InspectionCollectionRequest.ToString() -> string -~override CheatEngine.Client.Inspection.SymbolRegistration.Equals(object obj) -> bool -~override CheatEngine.Client.Inspection.SymbolRegistration.ToString() -> string -~override CheatEngine.Client.Lua.LuaExportDescriptor.Equals(object obj) -> bool -~override CheatEngine.Client.Lua.LuaExportDescriptor.ToString() -> string -~override CheatEngine.Client.Lua.LuaScript.Equals(object obj) -> bool -~override CheatEngine.Client.Lua.LuaScript.ToString() -> string -~override CheatEngine.Client.Memory.MemoryBytesReadRequest.Equals(object obj) -> bool -~override CheatEngine.Client.Memory.MemoryBytesReadRequest.ToString() -> string -~override CheatEngine.Client.Memory.MemoryReadRequest.Equals(object obj) -> bool -~override CheatEngine.Client.Memory.MemoryReadRequest.ToString() -> string -~override CheatEngine.Client.Memory.MemoryStringReadRequest.Equals(object obj) -> bool -~override CheatEngine.Client.Memory.MemoryStringReadRequest.ToString() -> string -~override CheatEngine.Client.Memory.MemoryStringWriteRequest.Equals(object obj) -> bool -~override CheatEngine.Client.Memory.MemoryStringWriteRequest.ToString() -> string -~override CheatEngine.Client.Memory.MemoryWriteRequest.Equals(object obj) -> bool -~override CheatEngine.Client.Memory.MemoryWriteRequest.ToString() -> string -~override CheatEngine.Client.Processes.LocalProcessEnumerationRequest.Equals(object obj) -> bool -~override CheatEngine.Client.Processes.LocalProcessEnumerationRequest.ToString() -> string -~override CheatEngine.Client.Processes.LocalProcessId.Equals(object obj) -> bool -~override CheatEngine.Client.Processes.LocalProcessId.ToString() -> string -~override CheatEngine.Client.Processes.LocalProcessSnapshot.Equals(object obj) -> bool -~override CheatEngine.Client.Processes.LocalProcessSnapshot.ToString() -> string -~override CheatEngine.Client.Processes.ProcessSnapshot.Equals(object obj) -> bool -~override CheatEngine.Client.Processes.ProcessSnapshot.ToString() -> string -~override CheatEngine.Client.Results.CheatEngineFailure.Equals(object obj) -> bool -~override CheatEngine.Client.Results.CheatEngineFailure.ToString() -> string -~override CheatEngine.Client.Results.LeaseReleaseOutcome.Equals(object obj) -> bool -~override CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.Equals(object obj) -> bool -~override CheatEngine.Client.Runtime.CheatEngineRuntimePlatformInfo.ToString() -> string -~override CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot.Equals(object obj) -> bool -~override CheatEngine.Client.Runtime.CheatEngineRuntimeSnapshot.ToString() -> string -~override CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.Equals(object obj) -> bool -~override CheatEngine.Client.Runtime.CheatEngineRuntimeVersionInfo.ToString() -> string -~override CheatEngine.Client.Runtime.ClientCapabilityAvailability.Equals(object obj) -> bool -~override CheatEngine.Client.Runtime.ClientCapabilityAvailability.ToString() -> string -~override CheatEngine.Client.Runtime.ClientCapabilityEvidence.Equals(object obj) -> bool -~override CheatEngine.Client.Runtime.ClientCapabilityEvidence.ToString() -> string -~override CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate.Equals(object obj) -> bool -~override CheatEngine.Client.Runtime.ClientCapabilityEvidenceGate.ToString() -> string -~override CheatEngine.Client.Scanning.AobPattern.Equals(object obj) -> bool -~override CheatEngine.Client.Scanning.AobScanRange.Equals(object obj) -> bool -~override CheatEngine.Client.Scanning.AobScanRange.ToString() -> string -~override CheatEngine.Client.Scanning.AobScanRequest.Equals(object obj) -> bool -~override CheatEngine.Client.Scanning.AobScanRequest.ToString() -> string -~override CheatEngine.Client.Scanning.PatternScanMetrics.Equals(object obj) -> bool -~override CheatEngine.Client.Scanning.PatternScanMetrics.ToString() -> string -~override CheatEngine.Client.Scanning.ScanAlignment.Equals(object obj) -> bool -~override CheatEngine.Client.Scanning.ScanAlignment.ToString() -> string -~override CheatEngine.Client.Scanning.ScanProtectionFilter.Equals(object obj) -> bool -~override CheatEngine.Client.Scanning.ScanProtectionFilter.ToString() -> string -~override CheatEngine.Client.Tables.MemoryRecordCollectionRequest.Equals(object obj) -> bool -~override CheatEngine.Client.Tables.MemoryRecordCollectionRequest.ToString() -> string -~override CheatEngine.Client.Tables.MemoryRecordContentSnapshot.Equals(object obj) -> bool -~override CheatEngine.Client.Tables.MemoryRecordContentSnapshot.ToString() -> string -~override CheatEngine.Client.Tables.MemoryRecordDefinition.Equals(object obj) -> bool -~override CheatEngine.Client.Tables.MemoryRecordDefinition.ToString() -> string -~override CheatEngine.Client.Tables.MemoryRecordHierarchyRequest.Equals(object obj) -> bool -~override CheatEngine.Client.Tables.MemoryRecordHierarchyRequest.ToString() -> string -~override CheatEngine.Client.Tables.MemoryRecordSearch.Equals(object obj) -> bool -~override CheatEngine.Client.Tables.MemoryRecordSearch.ToString() -> string -~override CheatEngine.Client.Tables.MemoryRecordSnapshot.Equals(object obj) -> bool -~override CheatEngine.Client.Tables.MemoryRecordSnapshot.ToString() -> string -~override CheatEngine.Client.Tables.MemoryRecordStateSnapshot.Equals(object obj) -> bool -~override CheatEngine.Client.Tables.MemoryRecordStateSnapshot.ToString() -> string -~override CheatEngine.Client.Tables.MemoryRecordUpdate.Equals(object obj) -> bool -~override CheatEngine.Client.Tables.MemoryRecordUpdate.ToString() -> string -~override CheatEngine.Client.Tables.TableLoadRequest.Equals(object obj) -> bool -~override CheatEngine.Client.Tables.TableLoadRequest.ToString() -> string -~override CheatEngine.Client.Tables.TableSaveRequest.Equals(object obj) -> bool -~override CheatEngine.Client.Tables.TableSaveRequest.ToString() -> string -~override CheatEngine.Client.Tables.TrustedTableFile.Equals(object obj) -> bool -~override CheatEngine.Client.Tables.TrustedTableFile.ToString() -> string +CheatEngine.Client.Lua.LuaOptional +CheatEngine.Client.Lua.LuaOptional +CheatEngine.Client.Lua.LuaOptional.Equals(CheatEngine.Client.Lua.LuaOptional other) -> bool +CheatEngine.Client.Lua.LuaOptional.HasValue.get -> bool +CheatEngine.Client.Lua.LuaOptional.IsNil.get -> bool +CheatEngine.Client.Lua.LuaOptional.IsOmitted.get -> bool +CheatEngine.Client.Lua.LuaOptional.LuaOptional() -> void +CheatEngine.Client.Lua.LuaOptional.TryGetValue(out T? value) -> bool +CheatEngine.Client.Lua.LuaOptional.Value.get -> T? +override CheatEngine.Client.Lua.LuaOptional.Equals(object? obj) -> bool +override CheatEngine.Client.Lua.LuaOptional.GetHashCode() -> int +static CheatEngine.Client.Lua.LuaOptional.Nil() -> CheatEngine.Client.Lua.LuaOptional +static CheatEngine.Client.Lua.LuaOptional.Of(T value) -> CheatEngine.Client.Lua.LuaOptional +static CheatEngine.Client.Lua.LuaOptional.Omitted() -> CheatEngine.Client.Lua.LuaOptional +static CheatEngine.Client.Lua.LuaOptional.operator !=(CheatEngine.Client.Lua.LuaOptional left, CheatEngine.Client.Lua.LuaOptional right) -> bool +static CheatEngine.Client.Lua.LuaOptional.operator ==(CheatEngine.Client.Lua.LuaOptional left, CheatEngine.Client.Lua.LuaOptional right) -> bool diff --git a/libs/CheatEngine.Client.Abstractions/README.md b/libs/CheatEngine.Client.Abstractions/README.md index fb3bb10..9c32ef5 100644 --- a/libs/CheatEngine.Client.Abstractions/README.md +++ b/libs/CheatEngine.Client.Abstractions/README.md @@ -873,7 +873,8 @@ This charter is normative for every public type of the seven Client packages; th - **Names.** `Get` returns an `X` (`GetPreviousInstructionAddress`, `GetSelectedRecord`, `GetCurrentProcess`). - **Outputs.** A failed `Try` leaves its value output `default`. A lease or session output is nullable and annotated `[NotNullWhen(true)]`. -- **Exemptions.** BCL-shaped pure lookups and parses (`ClientCapabilities.TryGet`, `AobPattern.TryParse`) have no +- **Exemptions.** BCL-shaped pure lookups and parses (`ClientCapabilities.TryGet`, `AobPattern.TryParse`, + `LuaOptional.TryGetValue`) have no failure output and no throwing twin. Implementable callbacks (`ILuaOperation.TryExecute`, `IMemoryCodec.TryRead`, `TryWrite`) and the codec contexts' `TryReadBytes` and `TryWriteBytes` keep the `Try` shape, `out` failure included, without a token or a twin. diff --git a/libs/CheatEngine.Client.Extensions.DependencyInjection/PublicAPI.Shipped.txt b/libs/CheatEngine.Client.Extensions.DependencyInjection/PublicAPI.Shipped.txt index 7dc5c58..349ba5d 100644 --- a/libs/CheatEngine.Client.Extensions.DependencyInjection/PublicAPI.Shipped.txt +++ b/libs/CheatEngine.Client.Extensions.DependencyInjection/PublicAPI.Shipped.txt @@ -1 +1,20 @@ #nullable enable +CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder +CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder.AddLuaModule() -> CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder! +CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder.AddModule() -> CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder! +CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder.BindConfiguration(Microsoft.Extensions.Configuration.IConfiguration! configuration) -> CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder! +CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder.BindConfiguration(Microsoft.Extensions.Configuration.IConfigurationSection! section) -> CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder! +CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder.Configure(System.Action! configure) -> CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder! +CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder.EnableUnsafeLuaExecution() -> CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder! +CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder.Services.get -> Microsoft.Extensions.DependencyInjection.IServiceCollection! +CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientOptions +CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientOptions.AllowedTableRoots.get -> System.Collections.Generic.IList! +CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientOptions.CheatEngineClientOptions() -> void +CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientOptions.MemoryResourceLimits.get -> CheatEngine.Client.Memory.MemoryResourceLimits! +CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientServiceCollectionExtensions +[CECLIENT5004]CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder.EnableAutoAssemblerPatches() -> CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder! +const CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientOptions.ConfigurationSectionName = "CheatEngineClient" -> string! +static CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientServiceCollectionExtensions.AddCheatEngineClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder! +static CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientServiceCollectionExtensions.AddCheatEngineClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services, Microsoft.Extensions.Configuration.IConfiguration! configuration) -> CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder! +static CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientServiceCollectionExtensions.AddCheatEngineClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services, Microsoft.Extensions.Configuration.IConfigurationSection! section) -> CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder! +static CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientServiceCollectionExtensions.AddCheatEngineClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services, System.Action! configure) -> CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder! diff --git a/libs/CheatEngine.Client.Extensions.DependencyInjection/PublicAPI.Unshipped.txt b/libs/CheatEngine.Client.Extensions.DependencyInjection/PublicAPI.Unshipped.txt index 349ba5d..7dc5c58 100644 --- a/libs/CheatEngine.Client.Extensions.DependencyInjection/PublicAPI.Unshipped.txt +++ b/libs/CheatEngine.Client.Extensions.DependencyInjection/PublicAPI.Unshipped.txt @@ -1,20 +1 @@ #nullable enable -CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder -CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder.AddLuaModule() -> CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder! -CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder.AddModule() -> CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder! -CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder.BindConfiguration(Microsoft.Extensions.Configuration.IConfiguration! configuration) -> CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder! -CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder.BindConfiguration(Microsoft.Extensions.Configuration.IConfigurationSection! section) -> CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder! -CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder.Configure(System.Action! configure) -> CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder! -CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder.EnableUnsafeLuaExecution() -> CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder! -CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder.Services.get -> Microsoft.Extensions.DependencyInjection.IServiceCollection! -CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientOptions -CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientOptions.AllowedTableRoots.get -> System.Collections.Generic.IList! -CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientOptions.CheatEngineClientOptions() -> void -CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientOptions.MemoryResourceLimits.get -> CheatEngine.Client.Memory.MemoryResourceLimits! -CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientServiceCollectionExtensions -[CECLIENT5004]CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder.EnableAutoAssemblerPatches() -> CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder! -const CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientOptions.ConfigurationSectionName = "CheatEngineClient" -> string! -static CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientServiceCollectionExtensions.AddCheatEngineClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder! -static CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientServiceCollectionExtensions.AddCheatEngineClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services, Microsoft.Extensions.Configuration.IConfiguration! configuration) -> CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder! -static CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientServiceCollectionExtensions.AddCheatEngineClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services, Microsoft.Extensions.Configuration.IConfigurationSection! section) -> CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder! -static CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientServiceCollectionExtensions.AddCheatEngineClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services, System.Action! configure) -> CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder! diff --git a/libs/CheatEngine.Client.Extensions.DependencyInjection/packages.lock.json b/libs/CheatEngine.Client.Extensions.DependencyInjection/packages.lock.json index 914eade..daa0533 100644 --- a/libs/CheatEngine.Client.Extensions.DependencyInjection/packages.lock.json +++ b/libs/CheatEngine.Client.Extensions.DependencyInjection/packages.lock.json @@ -110,7 +110,7 @@ "cheatengine.client.core": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )", + "CheatEngine.Client.Abstractions": "[1.1.0, )", "CheatEngine.SDK": "[2.0.0, 3.0.0)" } }, diff --git a/libs/CheatEngine.Client.Fluent/PublicAPI.Shipped.txt b/libs/CheatEngine.Client.Fluent/PublicAPI.Shipped.txt index 7dc5c58..93ab7a1 100644 --- a/libs/CheatEngine.Client.Fluent/PublicAPI.Shipped.txt +++ b/libs/CheatEngine.Client.Fluent/PublicAPI.Shipped.txt @@ -1 +1,69 @@ #nullable enable +CheatEngine.Client.Memory.CheatEngineMemoryFluentExtensions +CheatEngine.Client.Memory.MemoryAddressBuilder +CheatEngine.Client.Memory.MemoryAddressBuilder.Address.get -> CheatEngine.SDK.Engine.Values.Address +CheatEngine.Client.Memory.MemoryAddressBuilder.Follow(System.ReadOnlySpan offsets) -> CheatEngine.Client.Memory.MemoryPointerChainBuilder +CheatEngine.Client.Memory.MemoryAddressBuilder.MemoryAddressBuilder() -> void +CheatEngine.Client.Memory.MemoryAddressBuilder.Read(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> T +CheatEngine.Client.Memory.MemoryAddressBuilder.ReadBytes(int length, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Immutable.ImmutableArray +CheatEngine.Client.Memory.MemoryAddressBuilder.ReadString(int maximumLength, CheatEngine.Client.Memory.MemoryStringEncoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> string! +CheatEngine.Client.Memory.MemoryAddressBuilder.ReadWith(CheatEngine.Client.Memory.IMemoryCodec! codec, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> T +CheatEngine.Client.Memory.MemoryAddressBuilder.TryRead(out T value, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Memory.MemoryAddressBuilder.TryReadBytes(int length, out System.Collections.Immutable.ImmutableArray bytes, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Memory.MemoryAddressBuilder.TryReadString(int maximumLength, CheatEngine.Client.Memory.MemoryStringEncoding encoding, out string? value, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Memory.MemoryAddressBuilder.TryReadWith(CheatEngine.Client.Memory.IMemoryCodec! codec, out T value, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Memory.MemoryAddressBuilder.TryWrite(T value, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Memory.MemoryAddressBuilder.TryWriteBytes(System.ReadOnlySpan bytes, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Memory.MemoryAddressBuilder.TryWriteString(string! value, int maximumLength, CheatEngine.Client.Memory.MemoryStringEncoding encoding, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Memory.MemoryAddressBuilder.TryWriteWith(T value, CheatEngine.Client.Memory.IMemoryCodec! codec, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Memory.MemoryAddressBuilder.Write(T value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void +CheatEngine.Client.Memory.MemoryAddressBuilder.WriteBytes(System.ReadOnlySpan bytes, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void +CheatEngine.Client.Memory.MemoryAddressBuilder.WriteString(string! value, int maximumLength, CheatEngine.Client.Memory.MemoryStringEncoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void +CheatEngine.Client.Memory.MemoryAddressBuilder.WriteWith(T value, CheatEngine.Client.Memory.IMemoryCodec! codec, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void +CheatEngine.Client.Memory.MemoryPointerChainBuilder +CheatEngine.Client.Memory.MemoryPointerChainBuilder.MemoryPointerChainBuilder() -> void +CheatEngine.Client.Memory.MemoryPointerChainBuilder.Request.get -> CheatEngine.Client.Memory.PointerChainRequest +CheatEngine.Client.Memory.MemoryPointerChainBuilder.Resolve(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.SDK.Engine.Values.Address +CheatEngine.Client.Memory.MemoryPointerChainBuilder.TryResolve(out CheatEngine.SDK.Engine.Values.Address address, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Memory.MemoryPrimitiveBatchBuilder +CheatEngine.Client.Memory.MemoryPrimitiveBatchBuilder.MemoryPrimitiveBatchBuilder() -> void +CheatEngine.Client.Memory.MemoryPrimitiveBatchBuilder.Read(System.ReadOnlySpan addresses, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Immutable.ImmutableArray +CheatEngine.Client.Memory.MemoryPrimitiveBatchBuilder.TryRead(System.ReadOnlySpan addresses, out System.Collections.Immutable.ImmutableArray values, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Memory.MemoryPrimitiveBatchBuilder.TryWrite(System.ReadOnlySpan> values, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Memory.MemoryPrimitiveBatchBuilder.Write(System.ReadOnlySpan> values, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void +CheatEngine.Client.Scanning.AobFirstMatchBuilder +CheatEngine.Client.Scanning.AobFirstMatchBuilder.AobFirstMatchBuilder() -> void +CheatEngine.Client.Scanning.AobFirstMatchBuilder.Execute(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.SDK.Engine.Values.Address? +CheatEngine.Client.Scanning.AobFirstMatchBuilder.TryExecute(out CheatEngine.SDK.Engine.Values.Address? address, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Scanning.AobManyMatchBuilder +CheatEngine.Client.Scanning.AobManyMatchBuilder.AobManyMatchBuilder() -> void +CheatEngine.Client.Scanning.AobManyMatchBuilder.Execute(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Scanning.AobScanResult +CheatEngine.Client.Scanning.AobManyMatchBuilder.TryExecute(out CheatEngine.Client.Scanning.AobScanResult result, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Scanning.AobScanBuilder +CheatEngine.Client.Scanning.AobScanBuilder.AlignedTo(int divisor) -> CheatEngine.Client.Scanning.AobScanBuilder +CheatEngine.Client.Scanning.AobScanBuilder.Alignment.get -> CheatEngine.Client.Scanning.ScanAlignment +CheatEngine.Client.Scanning.AobScanBuilder.AobScanBuilder() -> void +CheatEngine.Client.Scanning.AobScanBuilder.Executable() -> CheatEngine.Client.Scanning.AobScanBuilder +CheatEngine.Client.Scanning.AobScanBuilder.FirstOrNone() -> CheatEngine.Client.Scanning.AobFirstMatchBuilder +CheatEngine.Client.Scanning.AobScanBuilder.InModule(CheatEngine.SDK.Engine.Inspection.ModuleName module) -> CheatEngine.Client.Scanning.AobScanBuilder +CheatEngine.Client.Scanning.AobScanBuilder.InModule(string! moduleName) -> CheatEngine.Client.Scanning.AobScanBuilder +CheatEngine.Client.Scanning.AobScanBuilder.InRange(CheatEngine.SDK.Engine.Values.Address start, CheatEngine.SDK.Engine.Values.Address end) -> CheatEngine.Client.Scanning.AobScanBuilder +CheatEngine.Client.Scanning.AobScanBuilder.LastDigits(string! digits) -> CheatEngine.Client.Scanning.AobScanBuilder +CheatEngine.Client.Scanning.AobScanBuilder.Module.get -> CheatEngine.SDK.Engine.Inspection.ModuleName? +CheatEngine.Client.Scanning.AobScanBuilder.Pattern.get -> CheatEngine.Client.Scanning.AobPattern +CheatEngine.Client.Scanning.AobScanBuilder.Protection.get -> CheatEngine.Client.Scanning.ScanProtectionFilter +CheatEngine.Client.Scanning.AobScanBuilder.Range.get -> CheatEngine.Client.Scanning.AobScanRange? +CheatEngine.Client.Scanning.AobScanBuilder.RequireSingle() -> CheatEngine.Client.Scanning.AobSingleMatchBuilder +CheatEngine.Client.Scanning.AobScanBuilder.Take(int maximumResults) -> CheatEngine.Client.Scanning.AobManyMatchBuilder +CheatEngine.Client.Scanning.AobScanBuilder.WithAlignment(CheatEngine.Client.Scanning.ScanAlignment alignment) -> CheatEngine.Client.Scanning.AobScanBuilder +CheatEngine.Client.Scanning.AobScanBuilder.WithProtection(CheatEngine.Client.Scanning.ScanProtectionFilter protection) -> CheatEngine.Client.Scanning.AobScanBuilder +CheatEngine.Client.Scanning.AobScanBuilder.Writable() -> CheatEngine.Client.Scanning.AobScanBuilder +CheatEngine.Client.Scanning.AobSingleMatchBuilder +CheatEngine.Client.Scanning.AobSingleMatchBuilder.AobSingleMatchBuilder() -> void +CheatEngine.Client.Scanning.AobSingleMatchBuilder.Execute(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.SDK.Engine.Values.Address +CheatEngine.Client.Scanning.AobSingleMatchBuilder.TryExecute(out CheatEngine.SDK.Engine.Values.Address address, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool +CheatEngine.Client.Scanning.CheatEngineAobFluentExtensions +static CheatEngine.Client.Memory.CheatEngineMemoryFluentExtensions.At(this CheatEngine.Client.Memory.IMemoryClient! memory, CheatEngine.SDK.Engine.Values.Address address) -> CheatEngine.Client.Memory.MemoryAddressBuilder +static CheatEngine.Client.Memory.CheatEngineMemoryFluentExtensions.Batch(this CheatEngine.Client.Memory.IMemoryClient! memory) -> CheatEngine.Client.Memory.MemoryPrimitiveBatchBuilder +static CheatEngine.Client.Scanning.CheatEngineAobFluentExtensions.Aob(this CheatEngine.Client.Scanning.IPatternScanner! scanner, CheatEngine.Client.Scanning.AobPattern pattern) -> CheatEngine.Client.Scanning.AobScanBuilder +static CheatEngine.Client.Scanning.CheatEngineAobFluentExtensions.Aob(this CheatEngine.Client.Scanning.IPatternScanner! scanner, string! pattern) -> CheatEngine.Client.Scanning.AobScanBuilder diff --git a/libs/CheatEngine.Client.Fluent/PublicAPI.Unshipped.txt b/libs/CheatEngine.Client.Fluent/PublicAPI.Unshipped.txt index 93ab7a1..7dc5c58 100644 --- a/libs/CheatEngine.Client.Fluent/PublicAPI.Unshipped.txt +++ b/libs/CheatEngine.Client.Fluent/PublicAPI.Unshipped.txt @@ -1,69 +1 @@ #nullable enable -CheatEngine.Client.Memory.CheatEngineMemoryFluentExtensions -CheatEngine.Client.Memory.MemoryAddressBuilder -CheatEngine.Client.Memory.MemoryAddressBuilder.Address.get -> CheatEngine.SDK.Engine.Values.Address -CheatEngine.Client.Memory.MemoryAddressBuilder.Follow(System.ReadOnlySpan offsets) -> CheatEngine.Client.Memory.MemoryPointerChainBuilder -CheatEngine.Client.Memory.MemoryAddressBuilder.MemoryAddressBuilder() -> void -CheatEngine.Client.Memory.MemoryAddressBuilder.Read(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> T -CheatEngine.Client.Memory.MemoryAddressBuilder.ReadBytes(int length, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Immutable.ImmutableArray -CheatEngine.Client.Memory.MemoryAddressBuilder.ReadString(int maximumLength, CheatEngine.Client.Memory.MemoryStringEncoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> string! -CheatEngine.Client.Memory.MemoryAddressBuilder.ReadWith(CheatEngine.Client.Memory.IMemoryCodec! codec, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> T -CheatEngine.Client.Memory.MemoryAddressBuilder.TryRead(out T value, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Memory.MemoryAddressBuilder.TryReadBytes(int length, out System.Collections.Immutable.ImmutableArray bytes, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Memory.MemoryAddressBuilder.TryReadString(int maximumLength, CheatEngine.Client.Memory.MemoryStringEncoding encoding, out string? value, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Memory.MemoryAddressBuilder.TryReadWith(CheatEngine.Client.Memory.IMemoryCodec! codec, out T value, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Memory.MemoryAddressBuilder.TryWrite(T value, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Memory.MemoryAddressBuilder.TryWriteBytes(System.ReadOnlySpan bytes, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Memory.MemoryAddressBuilder.TryWriteString(string! value, int maximumLength, CheatEngine.Client.Memory.MemoryStringEncoding encoding, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Memory.MemoryAddressBuilder.TryWriteWith(T value, CheatEngine.Client.Memory.IMemoryCodec! codec, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Memory.MemoryAddressBuilder.Write(T value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void -CheatEngine.Client.Memory.MemoryAddressBuilder.WriteBytes(System.ReadOnlySpan bytes, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void -CheatEngine.Client.Memory.MemoryAddressBuilder.WriteString(string! value, int maximumLength, CheatEngine.Client.Memory.MemoryStringEncoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void -CheatEngine.Client.Memory.MemoryAddressBuilder.WriteWith(T value, CheatEngine.Client.Memory.IMemoryCodec! codec, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void -CheatEngine.Client.Memory.MemoryPointerChainBuilder -CheatEngine.Client.Memory.MemoryPointerChainBuilder.MemoryPointerChainBuilder() -> void -CheatEngine.Client.Memory.MemoryPointerChainBuilder.Request.get -> CheatEngine.Client.Memory.PointerChainRequest -CheatEngine.Client.Memory.MemoryPointerChainBuilder.Resolve(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.SDK.Engine.Values.Address -CheatEngine.Client.Memory.MemoryPointerChainBuilder.TryResolve(out CheatEngine.SDK.Engine.Values.Address address, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Memory.MemoryPrimitiveBatchBuilder -CheatEngine.Client.Memory.MemoryPrimitiveBatchBuilder.MemoryPrimitiveBatchBuilder() -> void -CheatEngine.Client.Memory.MemoryPrimitiveBatchBuilder.Read(System.ReadOnlySpan addresses, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Immutable.ImmutableArray -CheatEngine.Client.Memory.MemoryPrimitiveBatchBuilder.TryRead(System.ReadOnlySpan addresses, out System.Collections.Immutable.ImmutableArray values, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Memory.MemoryPrimitiveBatchBuilder.TryWrite(System.ReadOnlySpan> values, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Memory.MemoryPrimitiveBatchBuilder.Write(System.ReadOnlySpan> values, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void -CheatEngine.Client.Scanning.AobFirstMatchBuilder -CheatEngine.Client.Scanning.AobFirstMatchBuilder.AobFirstMatchBuilder() -> void -CheatEngine.Client.Scanning.AobFirstMatchBuilder.Execute(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.SDK.Engine.Values.Address? -CheatEngine.Client.Scanning.AobFirstMatchBuilder.TryExecute(out CheatEngine.SDK.Engine.Values.Address? address, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Scanning.AobManyMatchBuilder -CheatEngine.Client.Scanning.AobManyMatchBuilder.AobManyMatchBuilder() -> void -CheatEngine.Client.Scanning.AobManyMatchBuilder.Execute(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.Client.Scanning.AobScanResult -CheatEngine.Client.Scanning.AobManyMatchBuilder.TryExecute(out CheatEngine.Client.Scanning.AobScanResult result, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Scanning.AobScanBuilder -CheatEngine.Client.Scanning.AobScanBuilder.AlignedTo(int divisor) -> CheatEngine.Client.Scanning.AobScanBuilder -CheatEngine.Client.Scanning.AobScanBuilder.Alignment.get -> CheatEngine.Client.Scanning.ScanAlignment -CheatEngine.Client.Scanning.AobScanBuilder.AobScanBuilder() -> void -CheatEngine.Client.Scanning.AobScanBuilder.Executable() -> CheatEngine.Client.Scanning.AobScanBuilder -CheatEngine.Client.Scanning.AobScanBuilder.FirstOrNone() -> CheatEngine.Client.Scanning.AobFirstMatchBuilder -CheatEngine.Client.Scanning.AobScanBuilder.InModule(CheatEngine.SDK.Engine.Inspection.ModuleName module) -> CheatEngine.Client.Scanning.AobScanBuilder -CheatEngine.Client.Scanning.AobScanBuilder.InModule(string! moduleName) -> CheatEngine.Client.Scanning.AobScanBuilder -CheatEngine.Client.Scanning.AobScanBuilder.InRange(CheatEngine.SDK.Engine.Values.Address start, CheatEngine.SDK.Engine.Values.Address end) -> CheatEngine.Client.Scanning.AobScanBuilder -CheatEngine.Client.Scanning.AobScanBuilder.LastDigits(string! digits) -> CheatEngine.Client.Scanning.AobScanBuilder -CheatEngine.Client.Scanning.AobScanBuilder.Module.get -> CheatEngine.SDK.Engine.Inspection.ModuleName? -CheatEngine.Client.Scanning.AobScanBuilder.Pattern.get -> CheatEngine.Client.Scanning.AobPattern -CheatEngine.Client.Scanning.AobScanBuilder.Protection.get -> CheatEngine.Client.Scanning.ScanProtectionFilter -CheatEngine.Client.Scanning.AobScanBuilder.Range.get -> CheatEngine.Client.Scanning.AobScanRange? -CheatEngine.Client.Scanning.AobScanBuilder.RequireSingle() -> CheatEngine.Client.Scanning.AobSingleMatchBuilder -CheatEngine.Client.Scanning.AobScanBuilder.Take(int maximumResults) -> CheatEngine.Client.Scanning.AobManyMatchBuilder -CheatEngine.Client.Scanning.AobScanBuilder.WithAlignment(CheatEngine.Client.Scanning.ScanAlignment alignment) -> CheatEngine.Client.Scanning.AobScanBuilder -CheatEngine.Client.Scanning.AobScanBuilder.WithProtection(CheatEngine.Client.Scanning.ScanProtectionFilter protection) -> CheatEngine.Client.Scanning.AobScanBuilder -CheatEngine.Client.Scanning.AobScanBuilder.Writable() -> CheatEngine.Client.Scanning.AobScanBuilder -CheatEngine.Client.Scanning.AobSingleMatchBuilder -CheatEngine.Client.Scanning.AobSingleMatchBuilder.AobSingleMatchBuilder() -> void -CheatEngine.Client.Scanning.AobSingleMatchBuilder.Execute(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> CheatEngine.SDK.Engine.Values.Address -CheatEngine.Client.Scanning.AobSingleMatchBuilder.TryExecute(out CheatEngine.SDK.Engine.Values.Address address, out CheatEngine.Client.Results.CheatEngineFailure failure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> bool -CheatEngine.Client.Scanning.CheatEngineAobFluentExtensions -static CheatEngine.Client.Memory.CheatEngineMemoryFluentExtensions.At(this CheatEngine.Client.Memory.IMemoryClient! memory, CheatEngine.SDK.Engine.Values.Address address) -> CheatEngine.Client.Memory.MemoryAddressBuilder -static CheatEngine.Client.Memory.CheatEngineMemoryFluentExtensions.Batch(this CheatEngine.Client.Memory.IMemoryClient! memory) -> CheatEngine.Client.Memory.MemoryPrimitiveBatchBuilder -static CheatEngine.Client.Scanning.CheatEngineAobFluentExtensions.Aob(this CheatEngine.Client.Scanning.IPatternScanner! scanner, CheatEngine.Client.Scanning.AobPattern pattern) -> CheatEngine.Client.Scanning.AobScanBuilder -static CheatEngine.Client.Scanning.CheatEngineAobFluentExtensions.Aob(this CheatEngine.Client.Scanning.IPatternScanner! scanner, string! pattern) -> CheatEngine.Client.Scanning.AobScanBuilder diff --git a/libs/CheatEngine.Client.Hosting/PublicAPI.Shipped.txt b/libs/CheatEngine.Client.Hosting/PublicAPI.Shipped.txt index 7dc5c58..e988110 100644 --- a/libs/CheatEngine.Client.Hosting/PublicAPI.Shipped.txt +++ b/libs/CheatEngine.Client.Hosting/PublicAPI.Shipped.txt @@ -1 +1,22 @@ #nullable enable +CheatEngine.Client.Hosting.CheatEngineClientPlugin +CheatEngine.Client.Hosting.CheatEngineClientPlugin.CheatEngineClientPlugin() -> void +CheatEngine.Client.Hosting.CheatEngineClientPlugin.GetRequiredClient() -> CheatEngine.Client.ICheatEngineClient! +CheatEngine.Client.Hosting.CheatEngineHostLogExtensions +CheatEngine.Client.Hosting.CheatEngineHostLogOptions +CheatEngine.Client.Hosting.CheatEngineHostLogOptions.CheatEngineHostLogOptions() -> void +CheatEngine.Client.Hosting.CheatEngineHostLogOptions.IncludeFormattedMessages.get -> bool +CheatEngine.Client.Hosting.CheatEngineHostLogOptions.IncludeFormattedMessages.set -> void +CheatEngine.Client.Hosting.CheatEnginePluginBuilder +CheatEngine.Client.Hosting.CheatEnginePluginBuilder.Client.get -> CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder! +CheatEngine.Client.Hosting.CheatEnginePluginBuilder.Configuration.get -> Microsoft.Extensions.Configuration.ConfigurationManager! +CheatEngine.Client.Hosting.CheatEnginePluginBuilder.Logging.get -> Microsoft.Extensions.Logging.ILoggingBuilder! +CheatEngine.Client.Hosting.CheatEnginePluginBuilder.PluginDirectory.get -> string! +CheatEngine.Client.Hosting.CheatEnginePluginBuilder.Services.get -> Microsoft.Extensions.DependencyInjection.IServiceCollection! +abstract CheatEngine.Client.Hosting.CheatEngineClientPlugin.Configure(CheatEngine.Client.Hosting.CheatEnginePluginBuilder! builder) -> void +override sealed CheatEngine.Client.Hosting.CheatEngineClientPlugin.OnDisable() -> void +override sealed CheatEngine.Client.Hosting.CheatEngineClientPlugin.OnEnable() -> void +static CheatEngine.Client.Hosting.CheatEngineHostLogExtensions.AddCheatEngineHostLog(this Microsoft.Extensions.Logging.ILoggingBuilder! builder) -> Microsoft.Extensions.Logging.ILoggingBuilder! +static CheatEngine.Client.Hosting.CheatEngineHostLogExtensions.AddCheatEngineHostLog(this Microsoft.Extensions.Logging.ILoggingBuilder! builder, System.Action! configure) -> Microsoft.Extensions.Logging.ILoggingBuilder! +virtual CheatEngine.Client.Hosting.CheatEngineClientPlugin.OnClientDisabling(CheatEngine.Client.ICheatEngineClient! client) -> void +virtual CheatEngine.Client.Hosting.CheatEngineClientPlugin.OnClientEnabled(CheatEngine.Client.ICheatEngineClient! client) -> void diff --git a/libs/CheatEngine.Client.Hosting/PublicAPI.Unshipped.txt b/libs/CheatEngine.Client.Hosting/PublicAPI.Unshipped.txt index e988110..7dc5c58 100644 --- a/libs/CheatEngine.Client.Hosting/PublicAPI.Unshipped.txt +++ b/libs/CheatEngine.Client.Hosting/PublicAPI.Unshipped.txt @@ -1,22 +1 @@ #nullable enable -CheatEngine.Client.Hosting.CheatEngineClientPlugin -CheatEngine.Client.Hosting.CheatEngineClientPlugin.CheatEngineClientPlugin() -> void -CheatEngine.Client.Hosting.CheatEngineClientPlugin.GetRequiredClient() -> CheatEngine.Client.ICheatEngineClient! -CheatEngine.Client.Hosting.CheatEngineHostLogExtensions -CheatEngine.Client.Hosting.CheatEngineHostLogOptions -CheatEngine.Client.Hosting.CheatEngineHostLogOptions.CheatEngineHostLogOptions() -> void -CheatEngine.Client.Hosting.CheatEngineHostLogOptions.IncludeFormattedMessages.get -> bool -CheatEngine.Client.Hosting.CheatEngineHostLogOptions.IncludeFormattedMessages.set -> void -CheatEngine.Client.Hosting.CheatEnginePluginBuilder -CheatEngine.Client.Hosting.CheatEnginePluginBuilder.Client.get -> CheatEngine.Client.Extensions.DependencyInjection.CheatEngineClientBuilder! -CheatEngine.Client.Hosting.CheatEnginePluginBuilder.Configuration.get -> Microsoft.Extensions.Configuration.ConfigurationManager! -CheatEngine.Client.Hosting.CheatEnginePluginBuilder.Logging.get -> Microsoft.Extensions.Logging.ILoggingBuilder! -CheatEngine.Client.Hosting.CheatEnginePluginBuilder.PluginDirectory.get -> string! -CheatEngine.Client.Hosting.CheatEnginePluginBuilder.Services.get -> Microsoft.Extensions.DependencyInjection.IServiceCollection! -abstract CheatEngine.Client.Hosting.CheatEngineClientPlugin.Configure(CheatEngine.Client.Hosting.CheatEnginePluginBuilder! builder) -> void -override sealed CheatEngine.Client.Hosting.CheatEngineClientPlugin.OnDisable() -> void -override sealed CheatEngine.Client.Hosting.CheatEngineClientPlugin.OnEnable() -> void -static CheatEngine.Client.Hosting.CheatEngineHostLogExtensions.AddCheatEngineHostLog(this Microsoft.Extensions.Logging.ILoggingBuilder! builder) -> Microsoft.Extensions.Logging.ILoggingBuilder! -static CheatEngine.Client.Hosting.CheatEngineHostLogExtensions.AddCheatEngineHostLog(this Microsoft.Extensions.Logging.ILoggingBuilder! builder, System.Action! configure) -> Microsoft.Extensions.Logging.ILoggingBuilder! -virtual CheatEngine.Client.Hosting.CheatEngineClientPlugin.OnClientDisabling(CheatEngine.Client.ICheatEngineClient! client) -> void -virtual CheatEngine.Client.Hosting.CheatEngineClientPlugin.OnClientEnabled(CheatEngine.Client.ICheatEngineClient! client) -> void diff --git a/libs/CheatEngine.Client.Hosting/packages.lock.json b/libs/CheatEngine.Client.Hosting/packages.lock.json index 6584394..789b52e 100644 --- a/libs/CheatEngine.Client.Hosting/packages.lock.json +++ b/libs/CheatEngine.Client.Hosting/packages.lock.json @@ -84,15 +84,15 @@ "cheatengine.client.core": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )", + "CheatEngine.Client.Abstractions": "[1.1.0, )", "CheatEngine.SDK": "[2.0.0, 3.0.0)" } }, "cheatengine.client.extensions.dependencyinjection": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )", - "CheatEngine.Client.Core": "[1.0.0, )", + "CheatEngine.Client.Abstractions": "[1.1.0, )", + "CheatEngine.Client.Core": "[1.1.0, )", "Microsoft.Extensions.Configuration.Abstractions": "[10.0.12, )", "Microsoft.Extensions.DependencyInjection": "[10.0.12, )", "Microsoft.Extensions.Logging": "[10.0.12, )", diff --git a/source-generators/CheatEngine.Client.SourceGenerators.Lua/AnalyzerReleases.Shipped.md b/source-generators/CheatEngine.Client.SourceGenerators.Lua/AnalyzerReleases.Shipped.md index 9c6fa74..81ec099 100644 --- a/source-generators/CheatEngine.Client.SourceGenerators.Lua/AnalyzerReleases.Shipped.md +++ b/source-generators/CheatEngine.Client.SourceGenerators.Lua/AnalyzerReleases.Shipped.md @@ -1,2 +1,25 @@ ; Shipped analyzer releases ; https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/Microsoft.CodeAnalysis.Analyzers/ReleaseTrackingAnalyzers.Help.md + +## Release 1.0.0 + +### New Rules + + Rule ID | Category | Severity | Notes +------------|------------------------|----------|-------------------------------------------------------------------------------------- + CECLUA1001 | CheatEngine.Client.Lua | Error | A generated Lua module must be a supported partial class. + CECLUA1002 | CheatEngine.Client.Lua | Error | A generated Lua module requires static SDK bindings. + CECLUA1003 | CheatEngine.Client.Lua | Error | A generated Lua module requires at least one export. + CECLUA1004 | CheatEngine.Client.Lua | Error | Generated Lua module export names must be unique. + CECLUA1005 | CheatEngine.Client.Lua | Error | A generated Lua module identity cannot be blank. + CECLUA1006 | CheatEngine.Client.Lua | Error | A generated Lua module must have a public DI constructor. + CECLUA1101 | CheatEngine.Client.Lua | Error | A generated Lua operation must target a supported Lua global. + CECLUA1102 | CheatEngine.Client.Lua | Error | Generated Lua operation methods cannot be overloaded. + CECLUA1103 | CheatEngine.Client.Lua | Error | Generated Lua operation signatures must be bounded. + CECLUA1104 | CheatEngine.Client.Lua | Error | Non-scalar Lua operation results require a mapper. + CECLUA1105 | CheatEngine.Client.Lua | Error | A Lua operation mapper must match the SDK result. + CECLUA1106 | CheatEngine.Client.Lua | Error | A Lua mapper must project a safe, recursively closed Client result and source graph. + CECLUA1201 | CheatEngine.Client.Lua | Error | A Lua global has a single owning module per plugin assembly (Q16). + CECLUA1202 | CheatEngine.Client.Lua | Error | A Lua module cannot declare a member reserved by the generated registration. + CECLUA1203 | CheatEngine.Client.Lua | Error | A Lua module cannot derive from a Lua module implementation. + CECLUA1204 | CheatEngine.Client.Lua | Error | Lua module annotations must be the contract types, not look-alikes. diff --git a/source-generators/CheatEngine.Client.SourceGenerators.Lua/AnalyzerReleases.Unshipped.md b/source-generators/CheatEngine.Client.SourceGenerators.Lua/AnalyzerReleases.Unshipped.md index d79dae0..bdca77e 100644 --- a/source-generators/CheatEngine.Client.SourceGenerators.Lua/AnalyzerReleases.Unshipped.md +++ b/source-generators/CheatEngine.Client.SourceGenerators.Lua/AnalyzerReleases.Unshipped.md @@ -2,19 +2,3 @@ Rule ID | Category | Severity | Notes ------------|------------------------|----------|-------------------------------------------------------------------------------------- - CECLUA1001 | CheatEngine.Client.Lua | Error | A generated Lua module must be a supported partial class. - CECLUA1002 | CheatEngine.Client.Lua | Error | A generated Lua module requires static SDK bindings. - CECLUA1003 | CheatEngine.Client.Lua | Error | A generated Lua module requires at least one export. - CECLUA1004 | CheatEngine.Client.Lua | Error | Generated Lua module export names must be unique. - CECLUA1005 | CheatEngine.Client.Lua | Error | A generated Lua module identity cannot be blank. - CECLUA1006 | CheatEngine.Client.Lua | Error | A generated Lua module must have a public DI constructor. - CECLUA1101 | CheatEngine.Client.Lua | Error | A generated Lua operation must target a supported Lua global. - CECLUA1102 | CheatEngine.Client.Lua | Error | Generated Lua operation methods cannot be overloaded. - CECLUA1103 | CheatEngine.Client.Lua | Error | Generated Lua operation signatures must be bounded. - CECLUA1104 | CheatEngine.Client.Lua | Error | Non-scalar Lua operation results require a mapper. - CECLUA1105 | CheatEngine.Client.Lua | Error | A Lua operation mapper must match the SDK result. - CECLUA1106 | CheatEngine.Client.Lua | Error | A Lua mapper must project a safe, recursively closed Client result and source graph. - CECLUA1201 | CheatEngine.Client.Lua | Error | A Lua global has a single owning module per plugin assembly (Q16). - CECLUA1202 | CheatEngine.Client.Lua | Error | A Lua module cannot declare a member reserved by the generated registration. - CECLUA1203 | CheatEngine.Client.Lua | Error | A Lua module cannot derive from a Lua module implementation. - CECLUA1204 | CheatEngine.Client.Lua | Error | Lua module annotations must be the contract types, not look-alikes. diff --git a/source-generators/CheatEngine.Client.SourceGenerators.Lua/CheatEngineLuaDiagnostics.cs b/source-generators/CheatEngine.Client.SourceGenerators.Lua/CheatEngineLuaDiagnostics.cs index 5fafdbd..9484d40 100644 --- a/source-generators/CheatEngine.Client.SourceGenerators.Lua/CheatEngineLuaDiagnostics.cs +++ b/source-generators/CheatEngine.Client.SourceGenerators.Lua/CheatEngineLuaDiagnostics.cs @@ -57,7 +57,7 @@ internal static class CheatEngineLuaDiagnostics public static readonly DiagnosticDescriptor UnsupportedSignature = new( "CECLUA1103", "Lua operation has an unsupported result shape", - "Lua operation '{0}' must have scalar input arguments and exactly one return value or one trailing out result", + "Lua operation '{0}' must have scalar required inputs followed by a contiguous group of scalar LuaOptional inputs, and exactly one return value or one trailing out result", Category, DiagnosticSeverity.Error, true, helpLinkUri: HelpLinkUri); public static readonly DiagnosticDescriptor MapperRequired = new( diff --git a/source-generators/CheatEngine.Client.SourceGenerators.Lua/CheatEngineLuaGenerator.cs b/source-generators/CheatEngine.Client.SourceGenerators.Lua/CheatEngineLuaGenerator.cs index a5f796d..5d9ce31 100644 --- a/source-generators/CheatEngine.Client.SourceGenerators.Lua/CheatEngineLuaGenerator.cs +++ b/source-generators/CheatEngine.Client.SourceGenerators.Lua/CheatEngineLuaGenerator.cs @@ -29,6 +29,7 @@ public sealed class CheatEngineLuaGenerator : IIncrementalGenerator internal const string LuaFunctionAttributeMetadataName = "CheatEngine.SDK.Annotations.Lua.LuaFunctionAttribute"; internal const string LuaGlobalAttributeMetadataName = "CheatEngine.SDK.Annotations.Lua.LuaGlobalAttribute"; private const string LuaResultMapperMetadataName = "CheatEngine.Client.Lua.ILuaResultMapper"; + private const string SdkLuaOptionalMetadataName = "CheatEngine.SDK.Lua.Marshalling.LuaOptional"; private const string LuaClassAttributeMetadataName = "CheatEngine.SDK.Annotations.Lua.LuaClassAttribute"; private const string CheatEngineSdkAssemblyPrefix = "CheatEngine.SDK"; @@ -276,6 +277,35 @@ SpecialType.System_String or SpecialType.System_IntPtr or SpecialType.System_UIn }; } + internal static bool TryGetSdkLuaOptional(ITypeSymbol type, out ITypeSymbol? valueType) + { + if (type is INamedTypeSymbol { Arity: 1 } named && + string.Equals(named.OriginalDefinition.ToDisplayString(), SdkLuaOptionalMetadataName, StringComparison.Ordinal)) + { + valueType = named.TypeArguments[0]; + return true; + } + + valueType = null; + return false; + } + + internal static bool IsSupportedSdkLuaOptionalValue(ITypeSymbol type) + { + return type.SpecialType switch + { + SpecialType.System_Boolean or SpecialType.System_Int32 or SpecialType.System_Int64 or + SpecialType.System_Single or SpecialType.System_Double or SpecialType.System_UIntPtr => true, + SpecialType.System_String => type.NullableAnnotation != NullableAnnotation.Annotated, + _ => false + }; + } + + internal static string ClientLuaOptionalTypeName(ITypeSymbol valueType) + { + return "global::CheatEngine.Client.Lua.LuaOptional<" + TypeName(valueType) + ">"; + } + internal static bool TryFindClientBoundaryViolation(ITypeSymbol type, ClientBoundaryRole role, out string violation) { diff --git a/source-generators/CheatEngine.Client.SourceGenerators.Lua/Model/OperationModel.cs b/source-generators/CheatEngine.Client.SourceGenerators.Lua/Model/OperationModel.cs index 58f89b0..4b568bb 100644 --- a/source-generators/CheatEngine.Client.SourceGenerators.Lua/Model/OperationModel.cs +++ b/source-generators/CheatEngine.Client.SourceGenerators.Lua/Model/OperationModel.cs @@ -9,7 +9,7 @@ internal sealed class OperationModel : IEquatable public OperationModel(EquatableArray diagnostics, string hintName, string @namespace, string containingTypeDeclaration, string operationVisibility, string bindingsType, string methodName, string operationTypeName, EquatableArray parameters, string sourceResultType, - string resultType, string? mapperType, bool hasOutResult, string failureOperation) + string resultType, string? mapperType, bool hasOutResult, bool hasOptionalResult, string failureOperation) { Diagnostics = diagnostics; HintName = hintName; @@ -24,6 +24,7 @@ public OperationModel(EquatableArray diagnostics, string hintNam ResultType = resultType; MapperType = mapperType; HasOutResult = hasOutResult; + HasOptionalResult = hasOptionalResult; FailureOperation = failureOperation; } @@ -93,6 +94,11 @@ public bool HasOutResult get; } + public bool HasOptionalResult + { + get; + } + public string FailureOperation { get; @@ -104,7 +110,7 @@ public static OperationModel Invalid(DiagnosticInfo diagnostic) { return new OperationModel(EquatableArray.Create(diagnostic), string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, EquatableArray.Empty, - string.Empty, string.Empty, null, false, string.Empty); + string.Empty, string.Empty, null, false, false, string.Empty); } public bool Equals(OperationModel? other) @@ -121,7 +127,7 @@ public bool Equals(OperationModel? other) string.Equals(SourceResultType, other.SourceResultType, StringComparison.Ordinal) && string.Equals(ResultType, other.ResultType, StringComparison.Ordinal) && string.Equals(MapperType, other.MapperType, StringComparison.Ordinal) && - HasOutResult == other.HasOutResult && + HasOutResult == other.HasOutResult && HasOptionalResult == other.HasOptionalResult && string.Equals(FailureOperation, other.FailureOperation, StringComparison.Ordinal); } @@ -144,11 +150,12 @@ public override int GetHashCode() /// One scalar input parameter of a generated Lua operation. internal readonly struct OperationParameter : IEquatable { - public OperationParameter(string type, string name) + public OperationParameter(string type, string name, bool isOptional) { Type = type; Name = name; FieldName = "_" + name.TrimStart('@'); + IsOptional = isOptional; } public string Type @@ -166,10 +173,15 @@ public string FieldName get; } + public bool IsOptional + { + get; + } + public bool Equals(OperationParameter other) { return string.Equals(Type, other.Type, StringComparison.Ordinal) && - string.Equals(Name, other.Name, StringComparison.Ordinal); + string.Equals(Name, other.Name, StringComparison.Ordinal) && IsOptional == other.IsOptional; } public override bool Equals(object? obj) diff --git a/source-generators/CheatEngine.Client.SourceGenerators.Lua/OperationEmitter.cs b/source-generators/CheatEngine.Client.SourceGenerators.Lua/OperationEmitter.cs index 1e26fb2..1760eaa 100644 --- a/source-generators/CheatEngine.Client.SourceGenerators.Lua/OperationEmitter.cs +++ b/source-generators/CheatEngine.Client.SourceGenerators.Lua/OperationEmitter.cs @@ -98,12 +98,34 @@ public static string Emit(OperationModel model) source.WriteLine(); // Only the SDK binding call is classified: the mapper is application code, whose exception leaves TryExecute // unchanged so that the Client rethrows it, like an exception of any other application-supplied code. - source.WriteLine(model.MapperType is null - ? "result = source;" - : "result = " + model.MapperType + ".Map(source);"); + if (!model.HasOptionalResult) + { + source.WriteLine(model.MapperType is null + ? "result = source;" + : "result = " + model.MapperType + ".Map(source);"); + } + else if (model.MapperType is null) + { + source.WriteLine("result = ToClientOptional(source);"); + } + else + { + string optionalResultType = OptionalValueType(model.ResultType); + source.WriteLine("result = source.IsOmitted ? global::CheatEngine.Client.Lua.LuaOptional.Omitted<" + + optionalResultType + ">() : source.IsNil ? " + + "global::CheatEngine.Client.Lua.LuaOptional.Nil<" + + optionalResultType + ">() : " + + "global::CheatEngine.Client.Lua.LuaOptional.Of(" + model.MapperType + ".Map(source.Value));"); + } source.WriteLine("failure = default;"); source.WriteLine("return true;"); source.CloseBlock(); + if (model.Parameters.Any(static parameter => parameter.IsOptional) || + (model.HasOptionalResult && model.MapperType is null)) + { + source.WriteLine(); + EmitOptionalConverters(source, model); + } source.CloseBlock(); source.CloseBlock(); @@ -199,7 +221,11 @@ private static string EmitRecordParameterList(EquatableArray private static string EmitArgumentList(EquatableArray parameters, bool fields) { - return string.Join(", ", parameters.Select(parameter => fields ? parameter.FieldName : parameter.Name)); + return string.Join(", ", parameters.Select(parameter => + { + string argument = fields ? parameter.FieldName : parameter.Name; + return parameter.IsOptional && fields ? "ToSdkOptional(" + argument + ")" : argument; + })); } private static string EmitOutArgumentList(EquatableArray parameters) @@ -207,4 +233,29 @@ private static string EmitOutArgumentList(EquatableArray par string arguments = EmitArgumentList(parameters, true); return arguments.Length == 0 ? "out source" : arguments + ", out source"; } + + private static void EmitOptionalConverters(SourceBuilder source, OperationModel model) + { + if (model.Parameters.Any(static parameter => parameter.IsOptional)) + { + source.WriteLine("private static global::CheatEngine.SDK.Lua.Marshalling.LuaOptional ToSdkOptional(global::CheatEngine.Client.Lua.LuaOptional value) where T : notnull"); + source.OpenBlock(); + source.WriteLine("return value.IsOmitted ? global::CheatEngine.SDK.Lua.Marshalling.LuaOptional.Omitted() : value.IsNil ? global::CheatEngine.SDK.Lua.Marshalling.LuaOptional.Nil() : global::CheatEngine.SDK.Lua.Marshalling.LuaOptional.Of(value.Value!);"); + source.CloseBlock(); + } + + if (model.HasOptionalResult && model.MapperType is null) + { + source.WriteLine("private static global::CheatEngine.Client.Lua.LuaOptional ToClientOptional(global::CheatEngine.SDK.Lua.Marshalling.LuaOptional value) where T : notnull"); + source.OpenBlock(); + source.WriteLine("return value.IsOmitted ? global::CheatEngine.Client.Lua.LuaOptional.Omitted() : value.IsNil ? global::CheatEngine.Client.Lua.LuaOptional.Nil() : global::CheatEngine.Client.Lua.LuaOptional.Of(value.Value);"); + source.CloseBlock(); + } + } + + private static string OptionalValueType(string optionalType) + { + int start = optionalType.IndexOf('<'); + return optionalType.Substring(start + 1, optionalType.Length - start - 2); + } } diff --git a/source-generators/CheatEngine.Client.SourceGenerators.Lua/OperationParser.cs b/source-generators/CheatEngine.Client.SourceGenerators.Lua/OperationParser.cs index e1d96b0..121a8c7 100644 --- a/source-generators/CheatEngine.Client.SourceGenerators.Lua/OperationParser.cs +++ b/source-generators/CheatEngine.Client.SourceGenerators.Lua/OperationParser.cs @@ -33,6 +33,7 @@ method.ContainingType.ContainingType is not null || method.ContainingType.IsFile ImmutableArray.Builder parameters = ImmutableArray.CreateBuilder(); IParameterSymbol? outResult = null; + bool sawOptionalInput = false; foreach (IParameterSymbol parameter in method.Parameters) { if (parameter.RefKind == RefKind.Out) @@ -48,14 +49,31 @@ method.ContainingType.ContainingType is not null || method.ContainingType.IsFile continue; } - if (parameter.RefKind != RefKind.None || parameter.IsParams || parameter.HasExplicitDefaultValue || - !CheatEngineLuaGenerator.IsScalar(parameter.Type)) + if (parameter.RefKind != RefKind.None || parameter.IsParams || parameter.HasExplicitDefaultValue) + { + return Invalid(CheatEngineLuaDiagnostics.UnsupportedSignature, location, method.Name); + } + + if (CheatEngineLuaGenerator.TryGetSdkLuaOptional(parameter.Type, out ITypeSymbol? optionalValue)) + { + if (!CheatEngineLuaGenerator.IsSupportedSdkLuaOptionalValue(optionalValue!)) + { + return Invalid(CheatEngineLuaDiagnostics.UnsupportedSignature, location, method.Name); + } + + sawOptionalInput = true; + parameters.Add(new OperationParameter(CheatEngineLuaGenerator.ClientLuaOptionalTypeName(optionalValue!), + CheatEngineLuaGenerator.EscapeIdentifier(parameter.Name), true)); + continue; + } + + if (sawOptionalInput || !CheatEngineLuaGenerator.IsScalar(parameter.Type)) { return Invalid(CheatEngineLuaDiagnostics.UnsupportedSignature, location, method.Name); } parameters.Add(new OperationParameter(CheatEngineLuaGenerator.TypeName(parameter.Type), - CheatEngineLuaGenerator.EscapeIdentifier(parameter.Name))); + CheatEngineLuaGenerator.EscapeIdentifier(parameter.Name), false)); } if (outResult is not null && method.ReturnType.SpecialType != SpecialType.System_Boolean) @@ -69,23 +87,34 @@ method.ContainingType.ContainingType is not null || method.ContainingType.IsFile } ITypeSymbol sourceResult = outResult?.Type ?? method.ReturnType; + bool hasOptionalResult = CheatEngineLuaGenerator.TryGetSdkLuaOptional(sourceResult, out ITypeSymbol? optionalResultValue); + if (hasOptionalResult && outResult is null) + { + return Invalid(CheatEngineLuaDiagnostics.UnsupportedSignature, location, method.Name); + } + if (hasOptionalResult && !CheatEngineLuaGenerator.IsSupportedSdkLuaOptionalValue(optionalResultValue!)) + { + return Invalid(CheatEngineLuaDiagnostics.UnsupportedSignature, location, method.Name); + } + + ITypeSymbol mapperSource = hasOptionalResult ? optionalResultValue! : sourceResult; AttributeData operationAttribute = context.Attributes[0]; INamedTypeSymbol? mapper = operationAttribute.ConstructorArguments.Length == 1 ? operationAttribute.ConstructorArguments[0].Value as INamedTypeSymbol : null; - ITypeSymbol result = sourceResult; + ITypeSymbol result = mapperSource; if (mapper is null) { - if (!CheatEngineLuaGenerator.IsScalar(sourceResult)) + if (!CheatEngineLuaGenerator.IsScalar(mapperSource)) { return Invalid(CheatEngineLuaDiagnostics.MapperRequired, location, method.Name); } } - else if (!CheatEngineLuaGenerator.TryGetMapperResult(mapper, sourceResult, out result)) + else if (!CheatEngineLuaGenerator.TryGetMapperResult(mapper, mapperSource, out result)) { return Invalid(CheatEngineLuaDiagnostics.InvalidMapper, location, mapper.Name, method.Name); } - else if (CheatEngineLuaGenerator.TryFindClientBoundaryViolation(sourceResult, + else if (CheatEngineLuaGenerator.TryFindClientBoundaryViolation(mapperSource, CheatEngineLuaGenerator.ClientBoundaryRole.MapperSource, out string sourceViolation)) { return Invalid(CheatEngineLuaDiagnostics.UnsafeMappedType, location, method.Name, sourceViolation); @@ -96,6 +125,13 @@ method.ContainingType.ContainingType is not null || method.ContainingType.IsFile return Invalid(CheatEngineLuaDiagnostics.UnsafeMappedType, location, method.Name, resultViolation); } + string resultType = hasOptionalResult ? CheatEngineLuaGenerator.ClientLuaOptionalTypeName(result) : + CheatEngineLuaGenerator.TypeName(result); + if (hasOptionalResult && IsNullableOptionalResult(result)) + { + return Invalid(CheatEngineLuaDiagnostics.UnsupportedSignature, location, method.Name); + } + string operationTypeName = method.Name + "LuaOperation"; return new OperationModel( EquatableArray.Empty, @@ -111,12 +147,18 @@ method.ContainingType.ContainingType is not null || method.ContainingType.IsFile operationTypeName, EquatableArray.Create(parameters.ToImmutable()), CheatEngineLuaGenerator.TypeName(sourceResult), - CheatEngineLuaGenerator.TypeName(result), + resultType, mapper is null ? null : CheatEngineLuaGenerator.TypeName(mapper), - outResult is not null, + outResult is not null, hasOptionalResult, "Lua.Operation." + method.ContainingType.Name + "." + method.Name); } + private static bool IsNullableOptionalResult(ITypeSymbol type) + { + return type.NullableAnnotation == NullableAnnotation.Annotated || + (type is INamedTypeSymbol named && named.OriginalDefinition.SpecialType == SpecialType.System_Nullable_T); + } + private static OperationModel Invalid(DiagnosticDescriptor descriptor, LocationInfo? location, params string[] arguments) { diff --git a/source-generators/CheatEngine.Client.SourceGenerators.Lua/README.md b/source-generators/CheatEngine.Client.SourceGenerators.Lua/README.md index c61baf7..6b802ca 100644 --- a/source-generators/CheatEngine.Client.SourceGenerators.Lua/README.md +++ b/source-generators/CheatEngine.Client.SourceGenerators.Lua/README.md @@ -11,8 +11,8 @@ registration lease; and at release the lease writes a global only while it still so a third-party replacement survives (F12, Q16). The module never calls the legacy SDK `RegisterLuaFunctions`/`UnregisterLuaFunctions` pair, which writes unconditionally. -`[CheatEngineLuaOperation]` turns a scalar `[LuaGlobal]` declaration into a readonly value operation -and strongly typed factory. Mapper calls use static abstract interface dispatch so the generated +`[CheatEngineLuaOperation]` turns a scalar `[LuaGlobal]` declaration, with supported optional inputs or a supported +optional trailing `out` result, into a readonly value operation and strongly typed factory. Mapper calls use static abstract interface dispatch so the generated runtime path stays trim- and AOT-friendly. The operation classifies only the SDK binding call: it calls the mapper, application code, after that classification, so an exception the mapper throws leaves `TryExecute` unchanged and the Client rethrows it as the same instance. Next to the factory, the containing class receives an `Execute` and a @@ -119,8 +119,20 @@ requires both outputs to compile together. Two CheatEngine.SDK 2.0.0 behaviours an unresolved global; the SDK Outcome form (`LuaOperationStatus`) could, but `[CheatEngineLuaOperation]` does not support it in 1.0. -`LuaOptional` is deferred past 1.0: an operation takes scalar inputs only (CECLUA1103), and the Client has no -contract for an omitted result yet. +`LuaOptional` inputs and trailing `out` results use the Client-owned `CheatEngine.Client.Lua.LuaOptional` contract. Its three +states stay distinct: `LuaOptional.Omitted()` passes no argument or represents no result, `LuaOptional.Nil()` +represents an explicit Lua `nil`, and `LuaOptional.Of(value)` represents a present non-null value (including `false` +and zero). The SDK marshalling type stays inside generated code. Required scalar inputs come first; optional scalar +inputs form one trailing contiguous group before the optional final `out` result. The SDK does not generate a direct +`LuaOptional` return, so an optional result requires a `bool Try...(..., out LuaOptional)` binding. Optional results preserve their state; +a mapper, when required, maps only a present inner value and leaves omitted and `nil` untouched. +`Value` returns a safe default for omitted or `nil`; use `HasValue` or `TryGetValue` when that distinction matters. +The SDK rejects an omitted optional input before a later non-omitted optional input as a binding error; use `Nil` for +the earlier slot when the Lua call needs to preserve the later argument. + +The optional inner type is narrower than ordinary scalar bindings: CheatEngine.SDK 2.0.0 supports only non-nullable +`int`, `long`, `float`, `double`, `bool`, `nuint`, and `string`. The generator rejects every other optional inner type +before mapper resolution. ## Diagnostics @@ -140,7 +152,7 @@ disagree. | CECLUA1006 | Lua module needs a public constructor | Only non-public explicit constructors exist, so dependency injection cannot create the module. | Make one constructor public, or remove the explicit constructors. | | CECLUA1101 | Lua operation requires a supported SDK global declaration | The operation is not a static partial `[LuaGlobal]` method of a top-level static partial class. | Declare `[CheatEngineLuaOperation][LuaGlobal("name")] public static partial T Name(...);` in a top-level `static partial` class. | | CECLUA1102 | Lua operation method cannot be overloaded | Several `[CheatEngineLuaOperation]` methods share a name. | Rename the overloads: each operation needs its own method name. | -| CECLUA1103 | Lua operation has an unsupported result shape | Inputs are not scalar, or the result is not one return value or one trailing `out` value. | Use scalar inputs and one result; `LuaOptional` inputs are deferred past 1.0. | +| CECLUA1103 | Lua operation has an unsupported result shape | Required inputs are not scalar, optional inputs are non-scalar or not trailing and contiguous, a direct result is SDK `LuaOptional`, or the result is not one return value or one trailing `out` value. | Use scalar required inputs, then a trailing contiguous group of scalar SDK `LuaOptional` inputs, and one scalar result or a `bool Try...` binding with one trailing `out` result. | | CECLUA1104 | Lua operation result requires a mapper | A non-scalar SDK result has no `ILuaResultMapper`. | Pass `typeof(MyMapper)` to `[CheatEngineLuaOperation]`, where `MyMapper` implements `ILuaResultMapper`. | | CECLUA1105 | Lua operation mapper does not match the SDK result | The mapper does not implement `ILuaResultMapper` for that SDK result. | Implement `ILuaResultMapper` with `TSource` equal to the declared SDK result. | | CECLUA1106 | Lua operation mapper must project a safe Client result | The mapped graph exposes an SDK lifetime, interop, callback, or opaque framework type. | Map to a copied value: scalars, approved SDK value types, closed immutable collections or closed DTOs of them. | diff --git a/src/CheatEngine.Client/packages.lock.json b/src/CheatEngine.Client/packages.lock.json index 96eb611..c0f67e4 100644 --- a/src/CheatEngine.Client/packages.lock.json +++ b/src/CheatEngine.Client/packages.lock.json @@ -58,15 +58,15 @@ "cheatengine.client.core": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )", + "CheatEngine.Client.Abstractions": "[1.1.0, )", "CheatEngine.SDK": "[2.0.0, 3.0.0)" } }, "cheatengine.client.extensions.dependencyinjection": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )", - "CheatEngine.Client.Core": "[1.0.0, )", + "CheatEngine.Client.Abstractions": "[1.1.0, )", + "CheatEngine.Client.Core": "[1.1.0, )", "Microsoft.Extensions.Configuration.Abstractions": "[10.0.12, )", "Microsoft.Extensions.DependencyInjection": "[10.0.12, )", "Microsoft.Extensions.Logging": "[10.0.12, )", @@ -77,13 +77,13 @@ "cheatengine.client.fluent": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )" + "CheatEngine.Client.Abstractions": "[1.1.0, )" } }, "cheatengine.client.hosting": { "type": "Project", "dependencies": { - "CheatEngine.Client.Extensions.DependencyInjection": "[1.0.0, )", + "CheatEngine.Client.Extensions.DependencyInjection": "[1.1.0, )", "CheatEngine.SDK": "[2.0.0, 3.0.0)", "Microsoft.Extensions.DependencyInjection": "[10.0.12, )", "Microsoft.Extensions.Logging": "[10.0.12, )" diff --git a/templates/CheatEngine.Client.Templates/content/CheatEngine.Plugin/CheatEngine.Plugin.csproj b/templates/CheatEngine.Client.Templates/content/CheatEngine.Plugin/CheatEngine.Plugin.csproj index 3eefb65..e7cdd46 100644 --- a/templates/CheatEngine.Client.Templates/content/CheatEngine.Plugin/CheatEngine.Plugin.csproj +++ b/templates/CheatEngine.Client.Templates/content/CheatEngine.Plugin/CheatEngine.Plugin.csproj @@ -27,7 +27,7 @@ declares [2.0.0, 3.0.0). The packed template references the exact CheatEngine.Client version it was released with. --> - + diff --git a/tests/CheatEngine.Client.Abstractions.Tests/Lua/LuaContractTests.cs b/tests/CheatEngine.Client.Abstractions.Tests/Lua/LuaContractTests.cs index 43fb38e..d95fc0a 100644 --- a/tests/CheatEngine.Client.Abstractions.Tests/Lua/LuaContractTests.cs +++ b/tests/CheatEngine.Client.Abstractions.Tests/Lua/LuaContractTests.cs @@ -63,6 +63,8 @@ public void PublicLuaContractsDoNotExposeRawSdkLuaHandles() typeof(ILuaExecutionContext), typeof(IUnsafeLuaClient), typeof(LuaScript), + typeof(LuaOptional), + typeof(LuaOptional<>), typeof(LuaModuleDescriptor), typeof(LuaExportDescriptor), typeof(CheatEngineLuaModuleAttribute), @@ -143,6 +145,45 @@ public void LuaResultMapperUsesTheDeclaredStaticMapContract() Assert.Equal("value:42", TextMapper.Map(new MappingSource(42))); } + [Fact] + public void LuaOptionalPreservesOmittedNilAndFalseOrZeroValues() + { + LuaOptional omitted = LuaOptional.Omitted(); + LuaOptional nil = LuaOptional.Nil(); + LuaOptional falseValue = LuaOptional.Of(false); + LuaOptional zero = LuaOptional.Of(0); + + Assert.True(omitted.IsOmitted); + Assert.True(default(LuaOptional).IsOmitted); + Assert.True(nil.IsNil); + Assert.True(falseValue.HasValue); + Assert.False(falseValue.Value); + Assert.True(zero.HasValue); + Assert.Equal(0, zero.Value); + Assert.False(omitted.TryGetValue(out int omittedValue)); + Assert.Equal(0, omittedValue); + Assert.False(nil.TryGetValue(out int absent)); + Assert.Equal(0, absent); + Assert.Equal(0, omitted.Value); + Assert.Equal(0, nil.Value); + Assert.Null(LuaOptional.Omitted().Value); + Assert.Null(LuaOptional.Nil().Value); + Assert.Equal(3, PresentOptionalTextLength(LuaOptional.Of("fox"))); + Assert.Equal(0, PresentOptionalTextLength(LuaOptional.Omitted())); + Assert.Throws(() => LuaOptional.Of(null!)); + Assert.Equal(default, omitted); + Assert.Equal(LuaOptional.Nil(), nil); + Assert.Equal(LuaOptional.Of(0), zero); + Assert.Equal(LuaOptional.Of(0).GetHashCode(), zero.GetHashCode()); + Assert.NotEqual(omitted, nil); + Assert.NotEqual(LuaOptional.Of(1), LuaOptional.Of(2)); + } + + private static int PresentOptionalTextLength(LuaOptional optional) + { + return optional.TryGetValue(out string? value) ? value.Length : 0; + } + private static IEnumerable GetPublicSignatureTypes(Type type) { foreach (PropertyInfo property in type.GetProperties(BindingFlags.Public | BindingFlags.Instance | diff --git a/tests/CheatEngine.Client.AotProbe/packages.lock.json b/tests/CheatEngine.Client.AotProbe/packages.lock.json index c523072..21ed522 100644 --- a/tests/CheatEngine.Client.AotProbe/packages.lock.json +++ b/tests/CheatEngine.Client.AotProbe/packages.lock.json @@ -46,8 +46,8 @@ "cheatengine.client": { "type": "Project", "dependencies": { - "CheatEngine.Client.Fluent": "[1.0.0, )", - "CheatEngine.Client.Hosting": "[1.0.0, )" + "CheatEngine.Client.Fluent": "[1.1.0, )", + "CheatEngine.Client.Hosting": "[1.1.0, )" } }, "cheatengine.client.abstractions": { @@ -59,15 +59,15 @@ "cheatengine.client.core": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )", + "CheatEngine.Client.Abstractions": "[1.1.0, )", "CheatEngine.SDK": "[2.0.0, 3.0.0)" } }, "cheatengine.client.extensions.dependencyinjection": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )", - "CheatEngine.Client.Core": "[1.0.0, )", + "CheatEngine.Client.Abstractions": "[1.1.0, )", + "CheatEngine.Client.Core": "[1.1.0, )", "Microsoft.Extensions.Configuration.Abstractions": "[10.0.12, )", "Microsoft.Extensions.DependencyInjection": "[10.0.12, )", "Microsoft.Extensions.Logging": "[10.0.12, )", @@ -78,13 +78,13 @@ "cheatengine.client.fluent": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )" + "CheatEngine.Client.Abstractions": "[1.1.0, )" } }, "cheatengine.client.hosting": { "type": "Project", "dependencies": { - "CheatEngine.Client.Extensions.DependencyInjection": "[1.0.0, )", + "CheatEngine.Client.Extensions.DependencyInjection": "[1.1.0, )", "CheatEngine.SDK": "[2.0.0, 3.0.0)", "Microsoft.Extensions.DependencyInjection": "[10.0.12, )", "Microsoft.Extensions.Logging": "[10.0.12, )" diff --git a/tests/CheatEngine.Client.Benchmarks/packages.lock.json b/tests/CheatEngine.Client.Benchmarks/packages.lock.json index f1741b6..d679594 100644 --- a/tests/CheatEngine.Client.Benchmarks/packages.lock.json +++ b/tests/CheatEngine.Client.Benchmarks/packages.lock.json @@ -147,15 +147,15 @@ "cheatengine.client.core": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )", + "CheatEngine.Client.Abstractions": "[1.1.0, )", "CheatEngine.SDK": "[2.0.0, 3.0.0)" } }, "cheatengine.client.extensions.dependencyinjection": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )", - "CheatEngine.Client.Core": "[1.0.0, )", + "CheatEngine.Client.Abstractions": "[1.1.0, )", + "CheatEngine.Client.Core": "[1.1.0, )", "Microsoft.Extensions.Configuration.Abstractions": "[10.0.12, )", "Microsoft.Extensions.DependencyInjection": "[10.0.12, )", "Microsoft.Extensions.Logging": "[10.0.12, )", @@ -166,7 +166,7 @@ "cheatengine.client.fluent": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )" + "CheatEngine.Client.Abstractions": "[1.1.0, )" } }, "CheatEngine.SDK": { diff --git a/tests/CheatEngine.Client.Core.Tests/packages.lock.json b/tests/CheatEngine.Client.Core.Tests/packages.lock.json index 4cd1370..cf3443b 100644 --- a/tests/CheatEngine.Client.Core.Tests/packages.lock.json +++ b/tests/CheatEngine.Client.Core.Tests/packages.lock.json @@ -204,7 +204,7 @@ "cheatengine.client.core": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )", + "CheatEngine.Client.Abstractions": "[1.1.0, )", "CheatEngine.SDK": "[2.0.0, 3.0.0)" } }, diff --git a/tests/CheatEngine.Client.Extensions.DependencyInjection.Tests/packages.lock.json b/tests/CheatEngine.Client.Extensions.DependencyInjection.Tests/packages.lock.json index b863028..fe5df7d 100644 --- a/tests/CheatEngine.Client.Extensions.DependencyInjection.Tests/packages.lock.json +++ b/tests/CheatEngine.Client.Extensions.DependencyInjection.Tests/packages.lock.json @@ -227,15 +227,15 @@ "cheatengine.client.core": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )", + "CheatEngine.Client.Abstractions": "[1.1.0, )", "CheatEngine.SDK": "[2.0.0, 3.0.0)" } }, "cheatengine.client.extensions.dependencyinjection": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )", - "CheatEngine.Client.Core": "[1.0.0, )", + "CheatEngine.Client.Abstractions": "[1.1.0, )", + "CheatEngine.Client.Core": "[1.1.0, )", "Microsoft.Extensions.Configuration.Abstractions": "[10.0.12, )", "Microsoft.Extensions.DependencyInjection": "[10.0.12, )", "Microsoft.Extensions.Logging": "[10.0.12, )", diff --git a/tests/CheatEngine.Client.Fluent.Tests/packages.lock.json b/tests/CheatEngine.Client.Fluent.Tests/packages.lock.json index dd6a0a9..3cf3803 100644 --- a/tests/CheatEngine.Client.Fluent.Tests/packages.lock.json +++ b/tests/CheatEngine.Client.Fluent.Tests/packages.lock.json @@ -204,7 +204,7 @@ "cheatengine.client.fluent": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )" + "CheatEngine.Client.Abstractions": "[1.1.0, )" } }, "CheatEngine.SDK": { diff --git a/tests/CheatEngine.Client.Hosting.Tests/packages.lock.json b/tests/CheatEngine.Client.Hosting.Tests/packages.lock.json index 58ed7aa..6a0e9cc 100644 --- a/tests/CheatEngine.Client.Hosting.Tests/packages.lock.json +++ b/tests/CheatEngine.Client.Hosting.Tests/packages.lock.json @@ -227,15 +227,15 @@ "cheatengine.client.core": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )", + "CheatEngine.Client.Abstractions": "[1.1.0, )", "CheatEngine.SDK": "[2.0.0, 3.0.0)" } }, "cheatengine.client.extensions.dependencyinjection": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )", - "CheatEngine.Client.Core": "[1.0.0, )", + "CheatEngine.Client.Abstractions": "[1.1.0, )", + "CheatEngine.Client.Core": "[1.1.0, )", "Microsoft.Extensions.Configuration.Abstractions": "[10.0.12, )", "Microsoft.Extensions.DependencyInjection": "[10.0.12, )", "Microsoft.Extensions.Logging": "[10.0.12, )", @@ -246,7 +246,7 @@ "cheatengine.client.hosting": { "type": "Project", "dependencies": { - "CheatEngine.Client.Extensions.DependencyInjection": "[1.0.0, )", + "CheatEngine.Client.Extensions.DependencyInjection": "[1.1.0, )", "CheatEngine.SDK": "[2.0.0, 3.0.0)", "Microsoft.Extensions.DependencyInjection": "[10.0.12, )", "Microsoft.Extensions.Logging": "[10.0.12, )" diff --git a/tests/CheatEngine.Client.LivePlugin.Coexistence/PluginA/packages.lock.json b/tests/CheatEngine.Client.LivePlugin.Coexistence/PluginA/packages.lock.json index 2cea112..ff169a1 100644 --- a/tests/CheatEngine.Client.LivePlugin.Coexistence/PluginA/packages.lock.json +++ b/tests/CheatEngine.Client.LivePlugin.Coexistence/PluginA/packages.lock.json @@ -115,15 +115,15 @@ "cheatengine.client.core": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )", + "CheatEngine.Client.Abstractions": "[1.1.0, )", "CheatEngine.SDK": "[2.0.0, 3.0.0)" } }, "cheatengine.client.extensions.dependencyinjection": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )", - "CheatEngine.Client.Core": "[1.0.0, )", + "CheatEngine.Client.Abstractions": "[1.1.0, )", + "CheatEngine.Client.Core": "[1.1.0, )", "Microsoft.Extensions.Configuration.Abstractions": "[10.0.12, )", "Microsoft.Extensions.DependencyInjection": "[10.0.12, )", "Microsoft.Extensions.Logging": "[10.0.12, )", @@ -134,7 +134,7 @@ "cheatengine.client.hosting": { "type": "Project", "dependencies": { - "CheatEngine.Client.Extensions.DependencyInjection": "[1.0.0, )", + "CheatEngine.Client.Extensions.DependencyInjection": "[1.1.0, )", "CheatEngine.SDK": "[2.0.0, 3.0.0)", "Microsoft.Extensions.DependencyInjection": "[10.0.12, )", "Microsoft.Extensions.Logging": "[10.0.12, )" diff --git a/tests/CheatEngine.Client.LivePlugin.Coexistence/PluginB/packages.lock.json b/tests/CheatEngine.Client.LivePlugin.Coexistence/PluginB/packages.lock.json index 2cea112..ff169a1 100644 --- a/tests/CheatEngine.Client.LivePlugin.Coexistence/PluginB/packages.lock.json +++ b/tests/CheatEngine.Client.LivePlugin.Coexistence/PluginB/packages.lock.json @@ -115,15 +115,15 @@ "cheatengine.client.core": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )", + "CheatEngine.Client.Abstractions": "[1.1.0, )", "CheatEngine.SDK": "[2.0.0, 3.0.0)" } }, "cheatengine.client.extensions.dependencyinjection": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )", - "CheatEngine.Client.Core": "[1.0.0, )", + "CheatEngine.Client.Abstractions": "[1.1.0, )", + "CheatEngine.Client.Core": "[1.1.0, )", "Microsoft.Extensions.Configuration.Abstractions": "[10.0.12, )", "Microsoft.Extensions.DependencyInjection": "[10.0.12, )", "Microsoft.Extensions.Logging": "[10.0.12, )", @@ -134,7 +134,7 @@ "cheatengine.client.hosting": { "type": "Project", "dependencies": { - "CheatEngine.Client.Extensions.DependencyInjection": "[1.0.0, )", + "CheatEngine.Client.Extensions.DependencyInjection": "[1.1.0, )", "CheatEngine.SDK": "[2.0.0, 3.0.0)", "Microsoft.Extensions.DependencyInjection": "[10.0.12, )", "Microsoft.Extensions.Logging": "[10.0.12, )" diff --git a/tests/CheatEngine.Client.LivePlugin.Coexistence/PluginCollision/packages.lock.json b/tests/CheatEngine.Client.LivePlugin.Coexistence/PluginCollision/packages.lock.json index 2cea112..ff169a1 100644 --- a/tests/CheatEngine.Client.LivePlugin.Coexistence/PluginCollision/packages.lock.json +++ b/tests/CheatEngine.Client.LivePlugin.Coexistence/PluginCollision/packages.lock.json @@ -115,15 +115,15 @@ "cheatengine.client.core": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )", + "CheatEngine.Client.Abstractions": "[1.1.0, )", "CheatEngine.SDK": "[2.0.0, 3.0.0)" } }, "cheatengine.client.extensions.dependencyinjection": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )", - "CheatEngine.Client.Core": "[1.0.0, )", + "CheatEngine.Client.Abstractions": "[1.1.0, )", + "CheatEngine.Client.Core": "[1.1.0, )", "Microsoft.Extensions.Configuration.Abstractions": "[10.0.12, )", "Microsoft.Extensions.DependencyInjection": "[10.0.12, )", "Microsoft.Extensions.Logging": "[10.0.12, )", @@ -134,7 +134,7 @@ "cheatengine.client.hosting": { "type": "Project", "dependencies": { - "CheatEngine.Client.Extensions.DependencyInjection": "[1.0.0, )", + "CheatEngine.Client.Extensions.DependencyInjection": "[1.1.0, )", "CheatEngine.SDK": "[2.0.0, 3.0.0)", "Microsoft.Extensions.DependencyInjection": "[10.0.12, )", "Microsoft.Extensions.Logging": "[10.0.12, )" diff --git a/tests/CheatEngine.Client.LivePlugin.Qualification/packages.lock.json b/tests/CheatEngine.Client.LivePlugin.Qualification/packages.lock.json index 61d96d1..e617e96 100644 --- a/tests/CheatEngine.Client.LivePlugin.Qualification/packages.lock.json +++ b/tests/CheatEngine.Client.LivePlugin.Qualification/packages.lock.json @@ -52,15 +52,15 @@ "cheatengine.client.core": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )", + "CheatEngine.Client.Abstractions": "[1.1.0, )", "CheatEngine.SDK": "[2.0.0, 3.0.0)" } }, "cheatengine.client.extensions.dependencyinjection": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )", - "CheatEngine.Client.Core": "[1.0.0, )", + "CheatEngine.Client.Abstractions": "[1.1.0, )", + "CheatEngine.Client.Core": "[1.1.0, )", "Microsoft.Extensions.Configuration.Abstractions": "[10.0.12, )", "Microsoft.Extensions.DependencyInjection": "[10.0.12, )", "Microsoft.Extensions.Logging": "[10.0.12, )", @@ -71,7 +71,7 @@ "cheatengine.client.hosting": { "type": "Project", "dependencies": { - "CheatEngine.Client.Extensions.DependencyInjection": "[1.0.0, )", + "CheatEngine.Client.Extensions.DependencyInjection": "[1.1.0, )", "CheatEngine.SDK": "[2.0.0, 3.0.0)", "Microsoft.Extensions.DependencyInjection": "[10.0.12, )", "Microsoft.Extensions.Logging": "[10.0.12, )" diff --git a/tests/CheatEngine.Client.SourceGenerators.Lua.Tests/Architecture/GeneratedLuaSurfaceRatchetTests.cs b/tests/CheatEngine.Client.SourceGenerators.Lua.Tests/Architecture/GeneratedLuaSurfaceRatchetTests.cs index 1e298ab..3a89e64 100644 --- a/tests/CheatEngine.Client.SourceGenerators.Lua.Tests/Architecture/GeneratedLuaSurfaceRatchetTests.cs +++ b/tests/CheatEngine.Client.SourceGenerators.Lua.Tests/Architecture/GeneratedLuaSurfaceRatchetTests.cs @@ -73,6 +73,20 @@ public sealed class GeneratedLuaSurfaceRatchetTests Admission + "; passed to the SDK only, never read or written by generated code") ]; + // The only SDK calls optional operation adapters need: tri-state conversion across the Client boundary. + private static readonly string[] SdkImposedOptionalOperationSurface = + [ + "CheatEngine.SDK.Lua.Marshalling.LuaOptional::Nil()->CheatEngine.SDK.Lua.Marshalling.LuaOptional`1", + "CheatEngine.SDK.Lua.Marshalling.LuaOptional::Of(!!0)->CheatEngine.SDK.Lua.Marshalling.LuaOptional`1", + "CheatEngine.SDK.Lua.Marshalling.LuaOptional::Omitted()->CheatEngine.SDK.Lua.Marshalling.LuaOptional`1", + "CheatEngine.SDK.Lua.Marshalling.LuaOptional`1::get_IsNil()->boolean", + "CheatEngine.SDK.Lua.Marshalling.LuaOptional`1::get_IsOmitted()->boolean", + "CheatEngine.SDK.Lua.Marshalling.LuaOptional`1::get_Value()->!0", + "CheatEngine.SDK.Lua.Marshalling.LuaOptional`1::get_IsNil()->boolean", + "CheatEngine.SDK.Lua.Marshalling.LuaOptional`1::get_IsOmitted()->boolean", + "CheatEngine.SDK.Lua.Marshalling.LuaOptional`1::get_Value()->!0" + ]; + private const string ModuleSource = """ using CheatEngine.Client.Lua; @@ -102,11 +116,10 @@ internal sealed partial class PluginLuaModule : ILuaModule; using CheatEngine.Client.Lua; using CheatEngine.SDK.Annotations.Lua; namespace TestPlugin; - internal sealed class SdkSnapshot { } internal readonly record struct Snapshot(int Value); - internal readonly struct SnapshotMapper : ILuaResultMapper + internal readonly struct SnapshotMapper : ILuaResultMapper { - public static Snapshot Map(SdkSnapshot source) => new(0); + public static Snapshot Map(int source) => new(0); } internal static partial class Globals @@ -121,7 +134,18 @@ internal static partial class Globals [CheatEngineLuaOperation(typeof(SnapshotMapper))] [LuaGlobal("getSnapshot")] - public static partial SdkSnapshot ReadSnapshot(); + public static partial int ReadSnapshot(); + + [CheatEngineLuaOperation] + [LuaGlobal("optional")] + public static partial bool TryReadOptional( + global::CheatEngine.SDK.Lua.Marshalling.LuaOptional input, + out global::CheatEngine.SDK.Lua.Marshalling.LuaOptional result); + + [CheatEngineLuaOperation(typeof(SnapshotMapper))] + [LuaGlobal("optionalSnapshot")] + public static partial bool TryReadOptionalSnapshot( + out global::CheatEngine.SDK.Lua.Marshalling.LuaOptional result); } """; @@ -139,7 +163,22 @@ public static partial bool TryReadVersion(int address, out int version) return true; } - public static partial SdkSnapshot ReadSnapshot() => new(); + public static partial int ReadSnapshot() => 0; + + public static partial bool TryReadOptional( + global::CheatEngine.SDK.Lua.Marshalling.LuaOptional input, + out global::CheatEngine.SDK.Lua.Marshalling.LuaOptional result) + { + result = default; + return true; + } + + public static partial bool TryReadOptionalSnapshot( + out global::CheatEngine.SDK.Lua.Marshalling.LuaOptional result) + { + result = default; + return true; + } } """; @@ -220,7 +259,8 @@ public void OperationAdaptersStillUseNoLuaStateOrLuaRef() Compilation compilation = run.OutputCompilation.AddSyntaxTrees(CSharpSyntaxTree.ParseText(OperationImplementations, new CSharpParseOptions(LanguageVersion.CSharp14), cancellationToken: TestContext.Current.CancellationToken)); - Assert.Empty(SdkMemberReferences(Emit(compilation))); + Assert.Equal(SdkImposedOptionalOperationSurface.Order(StringComparer.Ordinal), + SdkMemberReferences(Emit(compilation)).Order(StringComparer.Ordinal)); } [Fact] diff --git a/tests/CheatEngine.Client.SourceGenerators.Lua.Tests/CheatEngineLuaGeneratorTests.cs b/tests/CheatEngine.Client.SourceGenerators.Lua.Tests/CheatEngineLuaGeneratorTests.cs index b9c83b4..4dd50e7 100644 --- a/tests/CheatEngine.Client.SourceGenerators.Lua.Tests/CheatEngineLuaGeneratorTests.cs +++ b/tests/CheatEngine.Client.SourceGenerators.Lua.Tests/CheatEngineLuaGeneratorTests.cs @@ -54,6 +54,21 @@ internal static partial class Globals } """; + private const string OptionalOperationSource = + """ + using CheatEngine.Client.Lua; + using CheatEngine.SDK.Annotations.Lua; + namespace TestPlugin; + internal static partial class Globals + { + [CheatEngineLuaOperation] + [LuaGlobal("tryGetOptional")] + public static partial bool TryReadOptional( + bool enabled, global::CheatEngine.SDK.Lua.Marshalling.LuaOptional label, + out global::CheatEngine.SDK.Lua.Marshalling.LuaOptional value); + } + """; + private const string ModuleCompilationSource = """ using CheatEngine.Client.Lua; @@ -264,6 +279,179 @@ public void OutResultOperationProjectsTheSingleSdkOutValueAndMapsFalseToAFailure Assert.Contains("result = source;", generated, StringComparison.Ordinal); } + [Fact] + public void OptionalOperationsKeepOmittedNilAndPresentValuesAtTheClientBoundary() + { + GeneratorRun run = GeneratorRun.Execute(OptionalOperationSource); + + Assert.Empty(run.Diagnostics); + string direct = run.GeneratedText("_TryReadOptional.CheatEngineLuaOperation.g.cs"); + Assert.Contains("global::CheatEngine.Client.Lua.LuaOptional _label", direct, + StringComparison.Ordinal); + Assert.Contains("global::TestPlugin.Globals.TryReadOptional(_enabled, ToSdkOptional(_label), out source)", direct, + StringComparison.Ordinal); + Assert.Contains("result = ToClientOptional(source);", direct, StringComparison.Ordinal); + Assert.Contains("LuaOptional.Omitted()", direct, StringComparison.Ordinal); + Assert.Contains("LuaOptional.Nil()", direct, StringComparison.Ordinal); + Assert.Contains("ToClientOptional(source)", direct, StringComparison.Ordinal); + + AssertNoCompilerDiagnostics(run.OutputCompilation.AddSyntaxTrees(CSharpSyntaxTree.ParseText( + """ + namespace TestPlugin; + internal static partial class Globals + { + public static partial bool TryReadOptional( + bool enabled, global::CheatEngine.SDK.Lua.Marshalling.LuaOptional label, + out global::CheatEngine.SDK.Lua.Marshalling.LuaOptional value) + { + value = default; + return true; + } + } + """, new CSharpParseOptions(LanguageVersion.CSharp14), + cancellationToken: TestContext.Current.CancellationToken))); + } + + [Fact] + public void DirectOptionalResultsAreRejectedBecauseTheSdkOnlyGeneratesOptionalOutResults() + { + GeneratorRun run = GeneratorRun.Execute( + """ + using CheatEngine.Client.Lua; + using CheatEngine.SDK.Annotations.Lua; + namespace TestPlugin; + internal static partial class Globals + { + [CheatEngineLuaOperation] + [LuaGlobal("invalid")] + public static partial global::CheatEngine.SDK.Lua.Marshalling.LuaOptional Invalid(); + } + """); + + Assert.Contains(run.Diagnostics, static diagnostic => diagnostic.Id == "CECLUA1103"); + Assert.Empty(run.GeneratedSources); + } + + [Theory] + [InlineData("global::CheatEngine.SDK.Lua.Marshalling.LuaOptional value", "int")] + [InlineData("int value", "global::CheatEngine.SDK.Lua.Marshalling.LuaOptional")] + [InlineData("global::CheatEngine.SDK.Lua.Marshalling.LuaOptional value", "int")] + [InlineData("int value", "global::CheatEngine.SDK.Lua.Marshalling.LuaOptional")] + public void UnsupportedSdkOptionalInnerTypesAreRejectedBeforeGeneration(string input, string result) + { + GeneratorRun run = GeneratorRun.Execute( + "using CheatEngine.Client.Lua; using CheatEngine.SDK.Annotations.Lua; namespace TestPlugin; " + + "internal static partial class Globals { [CheatEngineLuaOperation] [LuaGlobal(\"invalid\")] " + + "public static partial bool Invalid(" + input + ", out " + result + " output); }"); + + Assert.Contains(run.Diagnostics, static diagnostic => diagnostic.Id == "CECLUA1103"); + Assert.Empty(run.GeneratedSources); + } + + [Theory] + [InlineData("string?")] + [InlineData("int?")] + public void OptionalMappedResultsRejectNullableClientTargets(string targetType) + { + GeneratorRun run = GeneratorRun.Execute( + $$""" + using CheatEngine.Client.Lua; + using CheatEngine.SDK.Annotations.Lua; + namespace TestPlugin; + internal readonly struct Mapper : ILuaResultMapper + { + public static {{targetType}} Map(int source) => null; + } + internal static partial class Globals + { + [CheatEngineLuaOperation(typeof(Mapper))] + [LuaGlobal("invalid")] + public static partial bool Invalid(out global::CheatEngine.SDK.Lua.Marshalling.LuaOptional output); + } + """); + + Assert.Contains(run.Diagnostics, static diagnostic => diagnostic.Id == "CECLUA1103"); + Assert.Empty(run.GeneratedSources); + } + + [Fact] + public void UnsupportedOptionalSdkResultCannotBeEnabledByAMatchingMapper() + { + GeneratorRun run = GeneratorRun.Execute( + """ + using CheatEngine.Client.Lua; + using CheatEngine.SDK.Annotations.Lua; + namespace TestPlugin; + internal sealed class Source { } + internal readonly record struct Snapshot(int Value); + internal readonly struct Mapper : ILuaResultMapper + { + public static Snapshot Map(Source source) => new(42); + } + internal static partial class Globals + { + [CheatEngineLuaOperation(typeof(Mapper))] + [LuaGlobal("invalid")] + public static partial bool Invalid(out global::CheatEngine.SDK.Lua.Marshalling.LuaOptional output); + } + """); + + Assert.Contains(run.Diagnostics, static diagnostic => diagnostic.Id == "CECLUA1103"); + Assert.Empty(run.GeneratedSources); + } + + [Fact] + public void OptionalInputsMustFormTheFinalContiguousInputGroup() + { + GeneratorRun run = GeneratorRun.Execute( + """ + using CheatEngine.Client.Lua; + using CheatEngine.SDK.Annotations.Lua; + namespace TestPlugin; + internal static partial class Globals + { + [CheatEngineLuaOperation] + [LuaGlobal("invalid")] + public static partial int Invalid( + global::CheatEngine.SDK.Lua.Marshalling.LuaOptional optional, int required); + } + """); + + Assert.Contains(run.Diagnostics, static diagnostic => diagnostic.Id == "CECLUA1103"); + Assert.Empty(run.GeneratedSources); + } + + [Fact] + public void OptionalMappedResultsMapOnlyPresentValuesAndKeepOmittedOrNilStates() + { + GeneratorRun run = GeneratorRun.Execute( + """ + using CheatEngine.Client.Lua; + using CheatEngine.SDK.Annotations.Lua; + namespace TestPlugin; + internal readonly record struct Snapshot(int Value); + internal readonly struct SnapshotMapper : ILuaResultMapper + { + public static Snapshot Map(int source) => new(42); + } + internal static partial class Globals + { + [CheatEngineLuaOperation(typeof(SnapshotMapper))] + [LuaGlobal("mappedOptional")] + public static partial bool TryReadMappedOptional( + out global::CheatEngine.SDK.Lua.Marshalling.LuaOptional result); + } + """); + + Assert.Empty(run.Diagnostics); + string generated = run.GeneratedText("TryReadMappedOptional.CheatEngineLuaOperation.g.cs"); + Assert.Contains("ILuaOperation>", + generated, StringComparison.Ordinal); + Assert.Contains("source.IsOmitted ? global::CheatEngine.Client.Lua.LuaOptional.Omitted()", + generated, StringComparison.Ordinal); + Assert.Contains("global::TestPlugin.SnapshotMapper.Map(source.Value)", generated, StringComparison.Ordinal); + } + [Fact] public void MappedOperationUsesTheDeclaredStaticMapperAndProjectsTheResultType() { diff --git a/tests/CheatEngine.Client.SourceGenerators.Lua.Tests/Composition/RealSdkGeneratorCompositionTests.cs b/tests/CheatEngine.Client.SourceGenerators.Lua.Tests/Composition/RealSdkGeneratorCompositionTests.cs index 69b4b64..f0725ee 100644 --- a/tests/CheatEngine.Client.SourceGenerators.Lua.Tests/Composition/RealSdkGeneratorCompositionTests.cs +++ b/tests/CheatEngine.Client.SourceGenerators.Lua.Tests/Composition/RealSdkGeneratorCompositionTests.cs @@ -50,6 +50,18 @@ internal static partial class Globals [CheatEngineLuaOperation] [LuaGlobal("tryGetVersion")] public static partial bool TryReadVersion(long address, out long version); + + [CheatEngineLuaOperation] + [LuaGlobal("optionalVersion")] + public static partial bool TryReadOptionalVersion( + global::CheatEngine.SDK.Lua.Marshalling.LuaOptional enabled, + out global::CheatEngine.SDK.Lua.Marshalling.LuaOptional version); + + [CheatEngineLuaOperation] + [LuaGlobal("optionalPair")] + public static partial int ReadOptionalPair( + global::CheatEngine.SDK.Lua.Marshalling.LuaOptional first, + global::CheatEngine.SDK.Lua.Marshalling.LuaOptional second); } internal static class Consumer @@ -58,7 +70,9 @@ internal static long Run(ILuaClient client) { int version = client.Execute(Globals.CreateReadVersionLuaOperation(1)); return client.TryExecute(Globals.CreateTryReadVersionLuaOperation(2), out long value, out _) - ? value + version + ? value + (client.TryExecute(Globals.CreateTryReadOptionalVersionLuaOperation( + CheatEngine.Client.Lua.LuaOptional.Of(false)), out CheatEngine.Client.Lua.LuaOptional optional, out _) + ? optional.Value : 0) + version : version; } } @@ -126,6 +140,19 @@ public void IntegerResultsAreReadWithTheSdkMarshallersThatRefuseAFloatAtOrAbove2 Assert.Contains("ThrowUnexpectedResult", globals, StringComparison.Ordinal); } + [Fact] + public void TheSdkGeneratedOptionalPairRejectsAnOmissionHoleBeforeLuaAdmissionOrCall() + { + string globals = SdkGeneratedText(SRun.Value, "ReadOptionalPair("); + int hole = globals.IndexOf("__argc > 1 && first.IsOmitted", StringComparison.Ordinal); + int admission = globals.IndexOf("AcquireOperation", StringComparison.Ordinal); + int call = globals.IndexOf("TryCall", StringComparison.Ordinal); + + Assert.True(hole >= 0, globals); + Assert.True(admission > hole, globals); + Assert.True(call > hole, globals); + } + private static GeneratorRun Run() { ISourceGenerator sdkGenerator = LoadSdkLuaBindingsGenerator(); diff --git a/tests/CheatEngine.Client.SourceGenerators.Lua.Tests/EndToEnd/OptionalOperationEndToEndTests.cs b/tests/CheatEngine.Client.SourceGenerators.Lua.Tests/EndToEnd/OptionalOperationEndToEndTests.cs new file mode 100644 index 0000000..db1045a --- /dev/null +++ b/tests/CheatEngine.Client.SourceGenerators.Lua.Tests/EndToEnd/OptionalOperationEndToEndTests.cs @@ -0,0 +1,287 @@ +using System.Reflection; + +using CheatEngine.Client.Lua; +using CheatEngine.Client.Results; +using CheatEngine.Client.SourceGenerators.Lua.Tests.Infrastructure; + +using SdkOptional = CheatEngine.SDK.Lua.Marshalling.LuaOptional; + +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.Emit; + +namespace CheatEngine.Client.SourceGenerators.Lua.Tests.EndToEnd; + +/// Executes generated optional operations against SDK-shaped partial binding bodies. +public sealed class OptionalOperationEndToEndTests +{ + private const string Source = + """ + using CheatEngine.Client.Lua; + using CheatEngine.SDK.Annotations.Lua; + namespace TestPlugin; + public readonly record struct Projection(int Value); + public readonly struct SnapshotMapper : ILuaResultMapper + { + public static Projection Map(int source) + { + Globals.MapperCalls++; + if (Globals.MapperException is not null) + { + throw Globals.MapperException; + } + + return new Projection(source); + } + } + + public static partial class Globals + { + [CheatEngineLuaOperation] + [LuaGlobal("tryOptional")] + public static partial bool TryReadOptional( + global::CheatEngine.SDK.Lua.Marshalling.LuaOptional input, + out global::CheatEngine.SDK.Lua.Marshalling.LuaOptional result); + + [CheatEngineLuaOperation] + [LuaGlobal("optionalPair")] + public static partial int ReadOptionalPair( + global::CheatEngine.SDK.Lua.Marshalling.LuaOptional first, + global::CheatEngine.SDK.Lua.Marshalling.LuaOptional second); + + [CheatEngineLuaOperation(typeof(SnapshotMapper))] + [LuaGlobal("mappedOptional")] + public static partial bool TryReadMappedOptional( + out global::CheatEngine.SDK.Lua.Marshalling.LuaOptional result); + } + """; + + private const string Bindings = + """ + namespace TestPlugin; + public static partial class Globals + { + public static global::CheatEngine.SDK.Lua.Marshalling.LuaOptional CapturedInput; + public static global::CheatEngine.SDK.Lua.Marshalling.LuaOptional TryResult; + public static global::CheatEngine.SDK.Lua.Marshalling.LuaOptional MappedResult; + public static bool TrySucceeds; + public static int PairCalls; + public static int MapperCalls; + public static System.Exception? MapperException; + + public static partial bool TryReadOptional( + global::CheatEngine.SDK.Lua.Marshalling.LuaOptional input, + out global::CheatEngine.SDK.Lua.Marshalling.LuaOptional result) + { + CapturedInput = input; + result = TryResult; + return TrySucceeds; + } + + public static partial int ReadOptionalPair( + global::CheatEngine.SDK.Lua.Marshalling.LuaOptional first, + global::CheatEngine.SDK.Lua.Marshalling.LuaOptional second) + { + if (first.IsOmitted && !second.IsOmitted) + { + throw new System.ArgumentException("Optional Lua arguments cannot omit a slot before a later present slot."); + } + + PairCalls++; + return 1; + } + + public static partial bool TryReadMappedOptional( + out global::CheatEngine.SDK.Lua.Marshalling.LuaOptional result) + { + result = MappedResult; + return true; + } + } + """; + + private static readonly Lazy SGlobals = new(Build, LazyThreadSafetyMode.ExecutionAndPublication); + + [Theory] + [InlineData(0)] + [InlineData(1)] + [InlineData(2)] + public void TryOptionalOperationPreservesEveryResultStateAndConvertsInput(int state) + { + Reset(); + LuaOptional input = state switch + { + 0 => LuaOptional.Omitted(), + 1 => LuaOptional.Nil(), + _ => LuaOptional.Of(false) + }; + Set("TrySucceeds", true); + Set("TryResult", state switch + { + 0 => SdkOptional.Omitted(), + 1 => SdkOptional.Nil(), + _ => SdkOptional.Of(0) + }); + + (bool succeeded, LuaOptional result, CheatEngineFailure failure) = ExecuteTry(input); + + Assert.True(succeeded); + Assert.Equal(default, failure); + Assert.Equal(input.IsOmitted, CapturedInput().IsOmitted); + Assert.Equal(input.IsNil, CapturedInput().IsNil); + Assert.Equal(input.HasValue, CapturedInput().HasValue); + if (input.HasValue) + { + Assert.False(CapturedInput().Value); + } + Assert.Equal(state == 0, result.IsOmitted); + Assert.Equal(state == 1, result.IsNil); + Assert.Equal(state == 2, result.HasValue); + if (result.HasValue) + { + Assert.Equal(0, result.Value); + } + } + + [Fact] + public void TryOptionalOperationMapsFalseBindingToLuaErrorFailure() + { + Reset(); + Set("TrySucceeds", false); + Set("TryResult", SdkOptional.Of(0)); + + (bool succeeded, LuaOptional result, CheatEngineFailure failure) = ExecuteTry(LuaOptional.Of(false)); + + Assert.False(succeeded); + Assert.True(result.IsOmitted); + Assert.Equal(CheatEngineFailureKind.LuaError, failure.Kind); + Assert.Equal("Lua.Operation.Globals.TryReadOptional", failure.Operation); + } + + [Fact] + public void OptionalArgumentHoleIsClassifiedAsABindingErrorBeforeTheBindingRuns() + { + Reset(); + object operation = SGlobals.Value.GetMethod("CreateReadOptionalPairLuaOperation", BindingFlags.Public | BindingFlags.Static)! + .Invoke(null, [LuaOptional.Omitted(), LuaOptional.Of(1)])!; + ILuaOperation typed = Assert.IsType>(operation, exactMatch: false); + + bool succeeded = typed.TryExecute(new ActiveContext(), out int result, out CheatEngineFailure failure); + + Assert.False(succeeded); + Assert.Equal(0, result); + Assert.Equal(CheatEngineFailureKind.BindingError, failure.Kind); + Assert.IsType(failure.Exception); + Assert.Equal(0, (int) Get("PairCalls")!); + } + + [Fact] + public void OptionalMapperSkipsOmittedAndNilButMapsPresentAndPropagatesItsOwnException() + { + Reset(); + Set("MappedResult", SdkOptional.Omitted()); + Assert.True(IsOptional(ExecuteMapped(), "IsOmitted")); + Set("MappedResult", SdkOptional.Nil()); + Assert.True(IsOptional(ExecuteMapped(), "IsNil")); + Assert.Equal(0, (int) Get("MapperCalls")!); + + Set("MappedResult", SdkOptional.Of(42)); + object projected = ExecuteMapped(); + Assert.True(IsOptional(projected, "HasValue")); + Assert.Equal(42, (int) projected.GetType().GetProperty("Value")!.GetValue(projected)!.GetType() + .GetProperty("Value")!.GetValue(projected.GetType().GetProperty("Value")!.GetValue(projected)!)!); + Assert.Equal(1, (int) Get("MapperCalls")!); + + InvalidOperationException expected = new("mapper"); + Set("MapperException", expected); + Assert.Same(expected, Assert.Throws(() => ExecuteMapped())); + } + + private static (bool Succeeded, LuaOptional Result, CheatEngineFailure Failure) ExecuteTry(LuaOptional input) + { + object operation = SGlobals.Value.GetMethod("CreateTryReadOptionalLuaOperation", BindingFlags.Public | BindingFlags.Static)! + .Invoke(null, [input])!; + ILuaOperation> typed = Assert.IsType>>(operation, exactMatch: false); + bool succeeded = typed.TryExecute(new ActiveContext(), out LuaOptional result, out CheatEngineFailure failure); + return (succeeded, result, failure); + } + + private static object ExecuteMapped() + { + object operation = SGlobals.Value.GetMethod("CreateTryReadMappedOptionalLuaOperation", BindingFlags.Public | BindingFlags.Static)! + .Invoke(null, null)!; + MethodInfo execute = operation.GetType().GetMethod(nameof(ILuaOperation<>.TryExecute))!; + object?[] arguments = [new ActiveContext(), null, null]; + bool succeeded; + try + { + succeeded = (bool) execute.Invoke(operation, arguments)!; + } + catch (TargetInvocationException exception) when (exception.InnerException is not null) + { + System.Runtime.ExceptionServices.ExceptionDispatchInfo.Capture(exception.InnerException).Throw(); + throw; + } + + Assert.True(succeeded); + Assert.Equal(default(CheatEngineFailure), (CheatEngineFailure) arguments[2]!); + return arguments[1]!; + } + + private static CheatEngine.SDK.Lua.Marshalling.LuaOptional CapturedInput() + { + CheatEngine.SDK.Lua.Marshalling.LuaOptional value = + (CheatEngine.SDK.Lua.Marshalling.LuaOptional) Get("CapturedInput")!; + return value; + } + + private static bool IsOptional(object value, string property) + { + return (bool) value.GetType().GetProperty(property)!.GetValue(value)!; + } + + private static void Reset() + { + Set("CapturedInput", default(CheatEngine.SDK.Lua.Marshalling.LuaOptional)); + Set("TryResult", default(CheatEngine.SDK.Lua.Marshalling.LuaOptional)); + Set("MappedResult", SdkOptional.Omitted()); + Set("TrySucceeds", false); + Set("PairCalls", 0); + Set("MapperCalls", 0); + Set("MapperException", null); + } + + private static object? Get(string field) + { + return SGlobals.Value.GetField(field, BindingFlags.Public | BindingFlags.Static)!.GetValue(null); + } + + private static void Set(string field, object? value) + { + SGlobals.Value.GetField(field, BindingFlags.Public | BindingFlags.Static)!.SetValue(null, value); + } + + private static Type Build() + { + GeneratorRun run = GeneratorRun.Execute(Source); + Assert.Empty(run.Diagnostics); + Compilation compilation = run.OutputCompilation.AddSyntaxTrees(CSharpSyntaxTree.ParseText(Bindings, + new CSharpParseOptions(LanguageVersion.CSharp14))); + using MemoryStream image = new(); + EmitResult emit = compilation.Emit(image); + Assert.True(emit.Success, string.Join(Environment.NewLine, emit.Diagnostics)); + return System.Reflection.Assembly.Load(image.ToArray()).GetType("TestPlugin.Globals", true)!; + } + + private sealed class ActiveContext : ILuaExecutionContext + { + public long Epoch => 1; + + public bool IsActive => true; + + public void ThrowIfExpired() + { + } + } + +} diff --git a/tests/CheatEngine.Client.SourceGenerators.Lua.Tests/packages.lock.json b/tests/CheatEngine.Client.SourceGenerators.Lua.Tests/packages.lock.json index e4e2c7f..69fabc3 100644 --- a/tests/CheatEngine.Client.SourceGenerators.Lua.Tests/packages.lock.json +++ b/tests/CheatEngine.Client.SourceGenerators.Lua.Tests/packages.lock.json @@ -245,15 +245,15 @@ "cheatengine.client.core": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )", + "CheatEngine.Client.Abstractions": "[1.1.0, )", "CheatEngine.SDK": "[2.0.0, 3.0.0)" } }, "cheatengine.client.extensions.dependencyinjection": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )", - "CheatEngine.Client.Core": "[1.0.0, )", + "CheatEngine.Client.Abstractions": "[1.1.0, )", + "CheatEngine.Client.Core": "[1.1.0, )", "Microsoft.Extensions.Configuration.Abstractions": "[10.0.12, )", "Microsoft.Extensions.DependencyInjection": "[10.0.12, )", "Microsoft.Extensions.Logging": "[10.0.12, )", diff --git a/tests/CheatEngine.Client.Tests/Architecture/PublicApiCharterTests.cs b/tests/CheatEngine.Client.Tests/Architecture/PublicApiCharterTests.cs index 66a70dc..07c2410 100644 --- a/tests/CheatEngine.Client.Tests/Architecture/PublicApiCharterTests.cs +++ b/tests/CheatEngine.Client.Tests/Architecture/PublicApiCharterTests.cs @@ -58,6 +58,8 @@ public sealed class PublicApiCharterTests { "CheatEngine.Client.Runtime.ClientCapabilities.TryGet", "CheatEngine.Client.Scanning.AobPattern.TryParse", + // An immutable value's presence lookup has no Cheat Engine operation or failure to classify. + "CheatEngine.Client.Lua.LuaOptional`1.TryGetValue", "CheatEngine.Client.Lua.ILuaOperation`1.TryExecute", "CheatEngine.Client.Memory.IMemoryCodec`1.TryRead", "CheatEngine.Client.Memory.IMemoryCodec`1.TryWrite", diff --git a/tests/CheatEngine.Client.Tests/Packaging/PackagedClientFeedFixture.cs b/tests/CheatEngine.Client.Tests/Packaging/PackagedClientFeedFixture.cs index f631d1c..d91549f 100644 --- a/tests/CheatEngine.Client.Tests/Packaging/PackagedClientFeedFixture.cs +++ b/tests/CheatEngine.Client.Tests/Packaging/PackagedClientFeedFixture.cs @@ -258,7 +258,8 @@ public async ValueTask InitializeAsync() return; } - _temporary = new TemporaryDirectory("PackageConsumptionSmoke"); + // Keep prerelease package-cache DLL paths below Windows' legacy path limit on ordinary user temp roots. + _temporary = new TemporaryDirectory("Packages"); _environment = CreateEnvironment(Root); PackageCache = _environment["NUGET_PACKAGES"]; PackageSource = decision.Kind == PackageSourceKind.ConfiguredDirectory diff --git a/tests/CheatEngine.Client.Tests/packages.lock.json b/tests/CheatEngine.Client.Tests/packages.lock.json index a203895..b6d0964 100644 --- a/tests/CheatEngine.Client.Tests/packages.lock.json +++ b/tests/CheatEngine.Client.Tests/packages.lock.json @@ -221,8 +221,8 @@ "cheatengine.client": { "type": "Project", "dependencies": { - "CheatEngine.Client.Fluent": "[1.0.0, )", - "CheatEngine.Client.Hosting": "[1.0.0, )" + "CheatEngine.Client.Fluent": "[1.1.0, )", + "CheatEngine.Client.Hosting": "[1.1.0, )" } }, "cheatengine.client.abstractions": { @@ -234,15 +234,15 @@ "cheatengine.client.core": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )", + "CheatEngine.Client.Abstractions": "[1.1.0, )", "CheatEngine.SDK": "[2.0.0, 3.0.0)" } }, "cheatengine.client.extensions.dependencyinjection": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )", - "CheatEngine.Client.Core": "[1.0.0, )", + "CheatEngine.Client.Abstractions": "[1.1.0, )", + "CheatEngine.Client.Core": "[1.1.0, )", "Microsoft.Extensions.Configuration.Abstractions": "[10.0.12, )", "Microsoft.Extensions.DependencyInjection": "[10.0.12, )", "Microsoft.Extensions.Logging": "[10.0.12, )", @@ -253,13 +253,13 @@ "cheatengine.client.fluent": { "type": "Project", "dependencies": { - "CheatEngine.Client.Abstractions": "[1.0.0, )" + "CheatEngine.Client.Abstractions": "[1.1.0, )" } }, "cheatengine.client.hosting": { "type": "Project", "dependencies": { - "CheatEngine.Client.Extensions.DependencyInjection": "[1.0.0, )", + "CheatEngine.Client.Extensions.DependencyInjection": "[1.1.0, )", "CheatEngine.SDK": "[2.0.0, 3.0.0)", "Microsoft.Extensions.DependencyInjection": "[10.0.12, )", "Microsoft.Extensions.Logging": "[10.0.12, )"