public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { IteratorState state = _isc.ToState((IEnumerator)value); Exclude(state); serializer.Serialize(writer, state); }
public void StaticYieldOnly() { var serializer = new IteratorStateConverter(); IEnumerator <int> iterator = SerializationCoroutines.StaticYieldOnly().GetEnumerator(); iterator.MoveNext(); IteratorState state1 = serializer.ToState(iterator); Assert.True((int)state1.Current == 1); iterator.MoveNext(); IteratorState state2 = serializer.ToState(iterator); Assert.True((int)state2.Current == 2); }
public void StaticYieldWithVarAndArg() { var serializer = new IteratorStateConverter(); IEnumerator <int> iterator = SerializationCoroutines.StaticYieldWithVarAndArg(5).GetEnumerator(); iterator.MoveNext(); IteratorState state1 = serializer.ToState(iterator); Assert.True((int)state1.Current == 5); iterator.MoveNext(); IteratorState state2 = serializer.ToState(iterator); Assert.True((int)state2.Current == 15); var newIterator = (IEnumerator <int>)serializer.FromState(state2); Assert.True(newIterator.Current == 15); }