RMVL  2.6.0-dev
Robotic Manipulation and Vision Library
载入中...
搜索中...
未找到
TOML 解析模块

提供 TOML 1.0 配置加载、只读节点访问和 C++ 类型转换功能 更多...

TOML 解析模块 的协作图:

类

struct  rm::toml::Date
 本地日期,对应 TOML 的 local date 更多...
struct  rm::toml::Time
 本地时间,对应 TOML 的 local time 更多...
struct  rm::toml::DateTime
 本地日期时间或带 UTC 偏移的日期时间 更多...
struct  rm::toml::Error
 TOML 加载错误信息 更多...
class  rm::toml::Node
 共享底层节点树所有权的只读节点句柄 更多...

枚举

enum class  rm::toml::NodeType : uint8_t {
  rm::toml::NodeType::Undefined , rm::toml::NodeType::Table , rm::toml::NodeType::Array , rm::toml::NodeType::String ,
  rm::toml::NodeType::Integer , rm::toml::NodeType::Floating , rm::toml::NodeType::Boolean , rm::toml::NodeType::Date ,
  rm::toml::NodeType::Time , rm::toml::NodeType::DateTime
}
 TOML 节点类型 更多...
enum class  rm::toml::ErrorCode : uint8_t { rm::toml::ErrorCode::None , rm::toml::ErrorCode::Parse , rm::toml::ErrorCode::Io }
 TOML 加载错误类型 更多...

函数

RMVL_EXPORTS Node rm::toml::load (std::string_view path, Error *error=nullptr)
 从文件加载并解析 TOML 1.0 配置
RMVL_EXPORTS Node rm::toml::loads (std::string_view source, Error *error=nullptr)
 从内存中的 UTF-8 文本解析 TOML 1.0 配置

详细描述

提供 TOML 1.0 配置加载、只读节点访问和 C++ 类型转换功能

  • load() 从文件加载,loads() 从 UTF-8 文本加载,成功时均返回 Table 类型的根节点,失败返回无效节点
  • TOML 不包含 null 类型,Undefined 仅用于表示无效节点句柄
    参见
    tutorial_modules_toml

枚举类型说明

◆ ErrorCode

enum class rm::toml::ErrorCode : uint8_t
strong

#include <rmvl/core/toml.hpp>

TOML 加载错误类型

枚举值
None 

无错误

Parse 

UTF-8 编码、语法或定义冲突错误

Io 

文件路径无效或文件打开、读取失败

◆ NodeType

enum class rm::toml::NodeType : uint8_t
strong

#include <rmvl/core/toml.hpp>

TOML 节点类型

枚举值
Undefined 

无效或不存在的节点,不是 TOML 值

Table 

表,包含以字符串为键的子节点,也用于表示内联表

Array 

数组,元素可以具有不同类型,表数组同样使用此类型

String 

UTF-8 字符串,读取时已完成转义处理

Integer 

有符号 64 位整数

Floating 

双精度浮点数,支持正负无穷和 NaN

Boolean 

布尔值

Date 

本地日期,不包含时间和 UTC 偏移

Time 

本地时间,不包含日期和 UTC 偏移

DateTime 

日期时间,可包含 UTC 偏移

函数说明

◆ load()

RMVL_EXPORTS Node rm::toml::load ( std::string_view path,
Error * error = nullptr )

#include <rmvl/core/toml.hpp>

从文件加载并解析 TOML 1.0 配置

参数
[in]path文件路径,相对路径以进程当前工作目录为基准,不允许包含空字符
[out]error可选的错误输出,默认为 nullptr,成功时清空已有错误
返回
成功时返回共享节点树所有权的 Table 根节点,空文件返回空 Table,失败返回无效节点
  • 路径或文件读写问题对应 ErrorCode::Io,编码、语法或定义冲突对应 ErrorCode::Parse
  • 这些加载错误通过返回值和 error 报告,不抛出异常
    注解
  • 返回的节点不引用 path 的内存,底层节点树由节点句柄共享持有
  • 内存分配失败等标准库异常不在此错误协议内,本函数不保证 noexcept
    参见
    loads()
函数调用图:

◆ loads()

RMVL_EXPORTS Node rm::toml::loads ( std::string_view source,
Error * error = nullptr )

#include <rmvl/core/toml.hpp>

从内存中的 UTF-8 文本解析 TOML 1.0 配置

参数
[in]sourceTOML 文本,不要求以空字符结尾
[out]error可选的错误输出,默认为 nullptr,成功时清空已有错误
返回
成功时返回共享节点树所有权的 Table 根节点,空文本返回空 Table,失败返回无效节点

编码或语法错误、重复键和非法表定义等问题通过返回值和 ErrorCode::Parse 报告,不抛出异常

注解
  • 解析完成后不依赖 source 的内存,调用方可以释放或修改原始文本
  • 内存分配失败等标准库异常不在此错误协议内,本函数不保证 noexcept
参见
load()
函数调用图: