/// <inheritdoc /> protected override void DoSerialize(BuildXLWriter writer) { writer.Write(Path); writer.WriteCompact(Length); // Evaluated array writer.Write(true); // This should be an array of constant expressions. for (int i = 0; i < Length; i++) { ConstExpressionSerializer.WriteConstValue(writer, m_data[i].Value); } }
/// <summary> /// Creates an object literal from the stream. /// </summary> public static ObjectLiteral Create(DeserializationContext context, LineInfo location) { var reader = context.Reader; var path = reader.ReadAbsolutePath(); var count = reader.ReadInt32Compact(); var namedValues = new List <NamedValue>(count); for (int i = 0; i < count; i++) { var name = reader.ReadStringId(); bool isNode = reader.ReadBoolean(); object body = isNode ? Read(context) : ConstExpressionSerializer.ReadConstValue(reader); namedValues.Add(NamedValue.Create(new Binding(name, body, location))); } return(Create(namedValues, location, path)); }
/// <inheritdoc /> protected override void DoSerialize(BuildXLWriter writer) { writer.Write(Path); writer.WriteCompact(Count); foreach (var member in Members) { writer.Write(member.Key); var node = member.Value.Value as Node; bool isNode = node != null; writer.Write(isNode); if (node != null) { node.Serialize(writer); } else { ConstExpressionSerializer.WriteConstValue(writer, member.Value.Value); } } }
/// <nodoc /> public void Serialize(BuildXLWriter writer) { ConstExpressionSerializer.Write(writer, this); }