25#include <spdlog/spdlog.h>
26#include <yaml-cpp/yaml.h>
115 std::map<common::model::relationship_t, std::pair<std::string, std::string>>
141 std::map<std::string, std::string>
style;
146 std::optional<std::string>
get_style(
const std::string &element_type)
const;
297 std::vector<common::model::access_t>
access;
452 std::variant<std::string, std::vector<std::string>>
entity;
458 std::map< std::string, std::string>
link;
462 const std::string &path)
const
468 const std::string &path)
const
505 bool operator()(
const std::string &a,
const std::string &b)
const
507 if (a.size() == b.size())
510 return a.size() > b.size();
514 std::map<std::string, std::string, type_aliases_longer_first_comparator>;
568 "include_relations_also_as_members",
true};
578 "generate_concept_requirements",
true};
586 "generate_template_argument_dependencies",
true};
588 "skip_redundant_dependencies",
true};
602 "combine_free_functions_into_file_participants",
false};
606 "generate_condition_statements",
false};
647 const std::vector<std::string> &compilation_database_files)
const;
656 const std::filesystem::path &p)
const;
665 const std::optional<std::string> &maybe_module)
const;
675 const std::string &full_name)
const;
752 "compilation_database_dir",
"."};
763 "remove_compile_flags"};
777 "diagram_templates"};
780 std::map<std::string, std::shared_ptr<diagram>>
diagrams;
810config load(
const std::string &config_file,
bool inherit =
true,
811 std::optional<bool> paths_relative_to_pwd = {},
812 std::optional<bool> no_metadata = {},
bool validate =
true);
821YAML::Emitter &
operator<<(YAML::Emitter &out,
const config &c);
824 YAML::Emitter &out,
const inheritable_diagram_options &c);
826YAML::Emitter &
operator<<(YAML::Emitter &out,
const filter &f);
828YAML::Emitter &
operator<<(YAML::Emitter &out,
const plantuml &p);
832YAML::Emitter &
operator<<(YAML::Emitter &out,
const generate_links_config &glc);
834YAML::Emitter &
operator<<(YAML::Emitter &out,
const git_config &gc);
836YAML::Emitter &
operator<<(YAML::Emitter &out,
const relationship_hint_t &rh);
842YAML::Emitter &
operator<<(YAML::Emitter &out,
const class_diagram &c);
844YAML::Emitter &
operator<<(YAML::Emitter &out,
const sequence_diagram &c);
846YAML::Emitter &
operator<<(YAML::Emitter &out,
const include_diagram &c);
848YAML::Emitter &
operator<<(YAML::Emitter &out,
const package_diagram &c);
850YAML::Emitter &
operator<<(YAML::Emitter &out,
const layout_hint &c);
853YAML::Emitter &
operator<<(YAML::Emitter &out,
const std::filesystem::path &p);
856 YAML::Emitter &out,
const std::vector<std::filesystem::path> &p);
859YAML::Emitter &
operator<<(YAML::Emitter &out,
const source_location &sc);
865 out << YAML::Key << o.
name;
866 if constexpr (std::is_same_v<T, std::filesystem::path>)
867 out << YAML::Value << o.
value.string();
869 out << YAML::Value << o.
value;
877namespace common::model {