Table of Contents

Class HookResultAttribute

Namespace
DotBoxD.Abstractions
Assembly
DotBoxD.Abstractions.dll

Marks a readonly partial record struct as a hook result: a value a .Register(...) / .RegisterLocal(...) terminal returns and the host applies. The DotBoxD generator emits builder members the user did not declare manually — Ok(), Reject(string? reason = null), and a With<Field>(value) per non-discriminator field — so result construction reads fluently and lowers to verified record.new IR.

A hook result must be a top-level readonly partial record struct that declares a bool Success field and a string? Reason field. Success = false means "abstain, fall through to the next matching registration"; a successful result may still carry a domain veto such as CanDie = false, so abstain and veto never overload the same field.

[AttributeUsage(AttributeTargets.Struct, Inherited = false)]
public sealed class HookResultAttribute : Attribute
Inheritance
HookResultAttribute
Inherited Members

Examples

[HookResult]
public readonly partial record struct CombatDamageResult(bool Success, string? Reason, int Damage);

// generated: CombatDamageResult.Ok().WithDamage(999), CombatDamageResult.Reject("not applicable")