2024-10-20 12:10:57 +08:00
|
|
|
|
using Serein.Library;
|
2024-12-26 16:42:05 +08:00
|
|
|
|
using Serein.Library.Utils;
|
2024-10-20 12:10:57 +08:00
|
|
|
|
|
2024-09-12 20:32:54 +08:00
|
|
|
|
|
|
|
|
|
|
namespace Serein.Library.Api
|
|
|
|
|
|
{
|
2024-10-11 16:46:16 +08:00
|
|
|
|
/// <summary>
|
2024-10-11 19:31:34 +08:00
|
|
|
|
/// <para>触发器必须使用该接口作为返回值,同时必须用Task泛型表示,否则将不会进行等待触发。</para>
|
|
|
|
|
|
/// <para>即使大多数时候,触发器传出的数据可能是任何一种数据类型,导致其泛型参数可能是无意义的 object / dynamic 。</para>
|
|
|
|
|
|
/// <para>但在确定传出类型的场景下,至少可以保证数据一定为某个类型。</para>
|
2024-10-11 16:46:16 +08:00
|
|
|
|
/// </summary>
|
|
|
|
|
|
public interface IFlipflopContext<out TResult>
|
2024-09-12 20:32:54 +08:00
|
|
|
|
{
|
2024-10-11 16:46:16 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 触发器完成的状态(根据业务场景手动设置)
|
|
|
|
|
|
/// </summary>
|
2024-09-15 22:07:10 +08:00
|
|
|
|
FlipflopStateType State { get; set; }
|
2024-10-11 16:46:16 +08:00
|
|
|
|
/// <summary>
|
2024-10-11 19:37:07 +08:00
|
|
|
|
/// 触发类型
|
2024-10-11 16:46:16 +08:00
|
|
|
|
/// </summary>
|
2024-12-23 23:19:10 +08:00
|
|
|
|
TriggerDescription Type { get; set; }
|
2024-10-11 16:46:16 +08:00
|
|
|
|
/// <summary>
|
2024-10-11 19:37:07 +08:00
|
|
|
|
/// 触发时传递的数据
|
2024-10-11 16:46:16 +08:00
|
|
|
|
/// </summary>
|
|
|
|
|
|
TResult Value { get; }
|
2024-09-12 20:32:54 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|