namespace Capnp.Rpc
{
///
/// Helper struct to support tail calls
///
public struct AnswerOrCounterquestion
{
readonly object _obj;
AnswerOrCounterquestion(object obj)
{
_obj = obj;
}
///
/// Wraps a SerializerState
///
/// object to wrap
public static implicit operator AnswerOrCounterquestion (SerializerState answer)
{
return new AnswerOrCounterquestion(answer);
}
///
/// Wraps a PendingQuestion
///
/// object to wrap
public static implicit operator AnswerOrCounterquestion (PendingQuestion counterquestion)
{
return new AnswerOrCounterquestion(counterquestion);
}
///
/// SerializerState, if applicable
///
public SerializerState? Answer => _obj as SerializerState;
///
/// PendingQuestion, if applicable
///
public PendingQuestion? Counterquestion => _obj as PendingQuestion;
}
}