Crate yaml_peg[−][src]
Expand description
A YAML 1.2 parser using greedy parsing algorithm with PEG atoms.
The major purpose of this crate is to let the user build their own YAML reader / builder / validator.
This parser is not ensure about YAML spec but almost functions are well-implemented. (test case is here)
The buffer reader has also not implemented, but the chunks can be read by sub-parsers.
Parser
Function parse
is used to parse YAML string into Node
data structure,
which has a data holder Yaml
.
There also has multiple thread version corresponding to parse_arc
, ArcNode
, ArcYaml
.
To get back as string, please use dump
function.
There are also have some macros for building NodeBase
structure from Rust data.
Especially node!
/ node_arc!
macro, almost data can be built by the macro literally.
If you went to rise your own error message, indicated_msg
might be a good choice.
Anchors
The anchor system AnchorBase
is implemented by using alloc::rc::Rc
and alloc::sync::Arc
as inner handler.
Additionally, anchors!
macro can used to create anchor visitor by yourself.
Serialization and Deserialization
Enable serde
/ serde-std
feature to use serde
crate.
The crate provides a set of protocol traits to convert between custom Rust data.
Please be aware that the additional fields will be discard when convert to a fix-sized structure.
For example, the structure fields can be turned into map keys as well.
On the other hand, the primitive types still able to transform to YAML data without serialization,
according to From
and Into
traits.
See serialize
module for more information.
Re-exports
Modules
Dumper components.
Parser components.
This module contains representation holder, the reference counter type.
serde
The implementation of serializer.
Macros
Create a custom anchor visitor.
Create Node
items literally.
Create ArcNode
items literally.
Create YamlBase::Array
items literally.
Create YamlBase::Map
items literally.
Structs
Node index indicator use to indicate array position.
Readonly node, including line number, column number, type assertion and anchor.
You can access YamlBase
type through NodeBase::yaml
method.
Enums
Functions
Create a visitor by visiting all nodes of the data.
Indicate the position of the documentation. This function will show the line number and column number of the position.
Type Definitions
Anchor visitor is made by a hash map that you can get the node reference inside.
An anchor visitor with alloc::rc::Rc
holder.
An anchor visitor with alloc::sync::Arc
holder.
A node with alloc::sync::Arc
holder.
A YAML data with alloc::sync::Arc
holder.
The array data structure of YAML.
The map data structure of YAML.
A node with alloc::rc::Rc
holder.
A YAML data with alloc::rc::Rc
holder.