Vulcan
Aerospace Engineering Utilities Built on Janus
Loading...
Searching...
No Matches
YamlNode.hpp File Reference

Type-safe YAML wrapper with path-aware error messages. More...

#include <janus/core/JanusTypes.hpp>
#include <janus/math/Quaternion.hpp>
#include <yaml-cpp/yaml.h>
#include <cstdint>
#include <optional>
#include <string>
#include <vector>
Include dependency graph for YamlNode.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  vulcan::io::YamlError
 Exception for YAML parsing/access errors. More...
class  vulcan::io::YamlNode
 Wrapper around yaml-cpp node with ergonomic accessors. More...

Namespaces

namespace  vulcan
namespace  vulcan::io
namespace  vulcan::io::detail

Functions

template<typename T>
vulcan::io::detail::yaml_as (const YAML::Node &node, const std::string &path)
template<>
std::string vulcan::io::YamlNode::As< std::string > () const
 Convert node to string.
template<>
janus::Vec3< double > vulcan::io::YamlNode::As< janus::Vec3< double > > () const
 Convert node to Vec3<double> from [x, y, z].
template<>
janus::Quaternion< double > vulcan::io::YamlNode::As< janus::Quaternion< double > > () const
 Convert node to Quaternion<double> from [w, x, y, z].
template<>
janus::Mat3< double > vulcan::io::YamlNode::As< janus::Mat3< double > > () const
 Convert node to Mat3<double> from nested or flat array.
template<>
std::vector< double > vulcan::io::YamlNode::As< std::vector< double > > () const
 Convert node to vector of doubles.
template<>
std::vector< int > vulcan::io::YamlNode::As< std::vector< int > > () const
 Convert node to vector of ints.
template<>
std::vector< std::string > vulcan::io::YamlNode::As< std::vector< std::string > > () const
 Convert node to vector of strings.

Detailed Description

Type-safe YAML wrapper with path-aware error messages.

Provides ergonomic access to YAML configuration with:

  • Type-safe extraction for common types
  • Path tracking for debugging
  • Support for Janus math types (Vec3, Mat3, Quaternion)