/// <summary> /// /// </summary> /// <param name="parser"></param> /// <param name="type"></param> /// <returns></returns> public object ReadYaml(IParser parser, Type type) { var scalar = (YamlDotNet.Core.Events.Scalar)parser.Current; var value = scalar.Value; if (string.IsNullOrWhiteSpace(value)) { parser.MoveNext(); return(null); } var values = value .Split(delimiter, StringSplitOptions.RemoveEmptyEntries) .Select(s => int.Parse(s)) .ToArray(); Require.That <InvalidDataException>(values.Length == 3, "Must have exactly three values to convert to a KerningPairModel object."); var result = new KerningPairModel { First = values[0], Second = values[1], Amount = values[2] }; parser.MoveNext(); return(result); }
/// <summary> /// /// </summary> /// <param name="emitter"></param> /// <param name="value"></param> /// <param name="type"></param> public void WriteYaml(IEmitter emitter, object value, Type type) { KerningPairModel kp = (KerningPairModel)value; emitter.Emit(new YamlDotNet.Core.Events.Scalar( null, null, $"{kp.First} {kp.Second} {kp.Amount}", ScalarStyle.Plain, true, false )); }