mirror of
https://github.com/ToruNiina/toml11.git
synced 2025-09-21 05:58:05 +08:00
67 lines
2.0 KiB
Markdown
67 lines
2.0 KiB
Markdown
+++
|
|
title = "serializer.hpp"
|
|
type = "docs"
|
|
+++
|
|
|
|
# serializer.hpp
|
|
|
|
# `format`
|
|
|
|
シリアライズを行います。
|
|
|
|
```cpp
|
|
namespace toml
|
|
{
|
|
template<typename TC>
|
|
std::string format(const basic_value<TC>& v,
|
|
const spec s = spec::default_version());
|
|
template<typename TC>
|
|
std::string format(const typename basic_value<TC>::key_type& k,
|
|
const basic_value<TC>& v,
|
|
const spec s = spec::default_version());
|
|
template<typename TC>
|
|
std::string format(const std::vector<typename basic_value<TC>::key_type>& ks,
|
|
const basic_value<TC>& v,
|
|
const spec s = spec::default_version());
|
|
}
|
|
```
|
|
|
|
フォーマット情報と`spec`が矛盾する場合、例えば`v1.0.0`で`table_format::multiline_oneline`が指定されているときなどは、`spec`が優先されます。
|
|
|
|
### `format(v, spec)`
|
|
|
|
`toml::value`を、それが持つフォーマット情報と`spec`に従ってフォーマットします。
|
|
|
|
`table_type`だった場合、それがルートであるとしてフォーマットします。
|
|
それ以外の値だった場合、値のみをフォーマットします。
|
|
|
|
### `format(k, v, spec)`
|
|
|
|
`toml::value`を、与えられたキーと同時にフォーマットします。
|
|
|
|
`v`はそのキー以下に定義されていると解釈されます。
|
|
|
|
### `format([k,...], v, spec)`
|
|
|
|
`v`はそのキー以下に定義されていると解釈されます。
|
|
キーが複数与えられた場合、再帰的に定義されたテーブルとして解釈されます。
|
|
|
|
# `serialization_error`
|
|
|
|
シリアライズ中に発生したエラーを報告します。
|
|
|
|
```cpp
|
|
namespace toml
|
|
{
|
|
struct serialization_error final : public ::toml::exception
|
|
{
|
|
public:
|
|
explicit serialization_error(std::string what_arg, source_location loc);
|
|
~serialization_error() noexcept override = default;
|
|
|
|
const char* what() const noexcept override;
|
|
source_location const& location() const noexcept;
|
|
};
|
|
}
|
|
```
|