public static void Save(IValueSink sink, PriorityValue value)
{
sink.EnterChoice((byte)value.Tag);
switch(value.Tag)
{
case Tags.Null:
Value<NullWrapper>.Save(sink, (NullWrapper)value);
break;
case Tags.Real:
Value<RealWrapper>.Save(sink, (RealWrapper)value);
break;
case Tags.Binary:
Value<BinaryWrapper>.Save(sink, (BinaryWrapper)value);
break;
case Tags.Integer:
Value<IntegerWrapper>.Save(sink, (IntegerWrapper)value);
break;
case Tags.ConstructedValue:
Value<ConstructedValueWrapper>.Save(sink, (ConstructedValueWrapper)value);
break;
default:
throw new Exception();
}
sink.LeaveChoice();
}