internal static void WriteStepsTemplate(IEmitter emitter, StepsTemplate template, Boolean noBootstrapper = false)
        {
            if (!noBootstrapper)
            {
                emitter.Emit(new MappingStart());
            }

            if (template.Steps != null && template.Steps.Count > 0)
            {
                emitter.Emit(new Scalar(YamlConstants.Steps));
                WriteSteps(emitter, template.Steps);
            }

            if (!noBootstrapper)
            {
                emitter.Emit(new MappingEnd());
            }
        }
        public Object ReadYaml(IParser parser, Type type)
        {
            var result = new StepsTemplate();

            parser.Expect <MappingStart>();
            while (parser.Allow <MappingEnd>() == null)
            {
                Scalar scalar = parser.Expect <Scalar>();
                switch (scalar.Value ?? String.Empty)
                {
                case YamlConstants.Steps:
                    result.Steps = ConverterUtil.ReadSteps(parser, simpleOnly: true);
                    break;

                default:
                    throw new SyntaxErrorException(scalar.Start, scalar.End, $"Unexpected steps template property: '{scalar.Value}'");
                }
            }

            return(result);
        }