/
IActionEvaluation.cs
34 lines (30 loc) · 1.04 KB
/
IActionEvaluation.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
using System;
using Bencodex.Types;
using Libplanet.Action.State;
namespace Libplanet.Action
{
public interface IActionEvaluation
{
/// <summary>
/// An action data to evaluate. When the
/// <see cref="InputContext"/>.<see cref="IActionContext.BlockAction"/> is true,
/// use <see cref="IBlockPolicy.BlockAction"/> instead of trying deserialization.
/// </summary>
public IValue Action { get; }
/// <summary>
/// An input <see cref="IActionContext"/> to evaluate
/// <see cref="Action"/>.
/// </summary>
/// <remarks>Its <see cref="IActionContext.Random"/> property
/// is not consumed yet.</remarks>
public IActionContext InputContext { get; }
/// <summary>
/// The result states that <see cref="Action"/> makes.
/// </summary>
public IWorld OutputState { get; }
/// <summary>
/// An exception that had risen during evaluation.
/// </summary>
public Exception? Exception { get; }
}
}