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")