как я могу напечатать 2d список с двумя минусами в одной строке с yaml cpp? - PullRequest
0 голосов
/ 08 апреля 2020

Я хотел бы создать следующий Yaml, используя yaml- cpp:

  steps:
    - - name: flip-coin
        template: flip-coin
    - - name: heads
        template: heads
        when: "{{steps.flip-coin.outputs.result}} == heads"
      - name: tails
        template: tails
        when: "{{steps.flip-coin.outputs.result}} == tails"

Но я не могу напечатать символы минус в одной строке. Вот что я получаю:

  steps:
    -
      - name: flip-coin
        template: flip-coin
    -
      - name: heads
        template: heads
        when: "{{steps.flip-coin.outputs.result}} == heads"
      - name: tails
        template: tails
        when: "{{steps.flip-coin.outputs.result}} == tails"

Мой код

    YAML::Node node;
    node["steps"][0][0]["name"]="flip-coin";
    node["steps"][0][0]["template"]="flip-coin";

    node["steps"][1][0]["name"]="heads";
    node["steps"][1][0]["template"]="heads";
    node["steps"][1][0]["when"]="{{steps.flip-coin.outputs.result}} == heads";

    node["steps"][1][1]["name"]="tails";
    node["steps"][1][1]["template"]="tails";
    node["steps"][1][1]["when"]="{{steps.flip-coin.outputs.result}} == tails";

    YAML::Emitter out;
    out << node;
    std::cout << out.c_str();

1 Ответ

1 голос
/ 08 апреля 2020

Существующие манипуляторы не содержат ничего, что позволило бы вам настроить компактную встроенную запись последовательности, поэтому я почти уверен, что это невозможно.

Как правило, YAML не предназначен точно настроить символ за символом, как выглядит ваш вывод. См. Также этот связанный вопрос . Промежуточная информация - это деталь презентации, которая отсутствует в ваших данных. Следовательно, ваши данные представляются в том виде, в котором реализация сочтет нужным, и, за исключением доступных манипуляторов, вы ничего не можете с этим поделать.

...