RejectedPromise.cs
37 lines
| 820 B
| text/x-csharp
|
CSharpLexer
/ Implab / RejectedPromise.cs
|
|
r248 | using System; | |
| namespace Implab | |||
| { | |||
| public struct RejectedPromise : IPromise { | |||
| readonly Exception m_reason; | |||
| public Type ResultType => typeof(void); | |||
| public bool IsResolved => true; | |||
| public bool IsRejected => true; | |||
| public bool IsFulfilled => false; | |||
| public Exception RejectReason => m_reason; | |||
| public RejectedPromise(Exception reason) { | |||
| m_reason = reason; | |||
| } | |||
| public IPromise<T> Cast<T>() { | |||
| throw new InvalidCastException(); | |||
| } | |||
| public void Join() { | |||
| m_reason.ThrowInvocationException(); | |||
| } | |||
| public void Join(int timeout) { | |||
| m_reason.ThrowInvocationException(); | |||
| } | |||
| public void Then(IResolvable next) { | |||
| next.Reject(m_reason); | |||
| } | |||
| } | |||
| } |
