Comments (3)
Depending on your use case, if you are ascribing types to parts of your YAML input then you will likely be better off using serde_yaml. Even though it uses yaml-rust internally it does not have the problems you described. The yaml_rust::Yaml type is not designed for this use case.
#[macro_use]
extern crate serde_derive;
extern crate serde_yaml;
#[derive(Deserialize, Debug)]
struct S {
looks_like_number: String,
looks_like_null: String,
}
fn main() {
let y = "looks_like_number: 07054\nlooks_like_null: ~";
println!("{:?}", serde_yaml::from_str::<S>(y).unwrap());
}
from yaml-rust.
@dtolnay: You make a good point. I will give serde_yaml a try to see if it covers my use case entirely. I fear that the YAML schema I'm trying to parse might be too relaxed, allowing strings as a short-hand for arrays in some places.
from yaml-rust.
Check out this example in the docs of how to handle something like that. https://serde.rs/string-or-struct.html
from yaml-rust.
Related Issues (20)
- Parse from raw bytes HOT 2
- Add more maintainers HOT 11
- Valgrind complains about uninitialized values HOT 4
- Add support for YAML 1.1 HOT 1
- Support alternate line endings
- Bug in anchor handling? HOT 2
- Panic uninitialised linked hash map HOT 2
- can not part ref HOT 1
- Doesn't seem possible to iteratate over results HOT 3
- misleading? HOT 1
- is it wasm compatible? HOT 1
- Dupliacte keys are not detected as invalid YAML
- Add API to emit YAML strings (i.e. `need_quotes` and `escape_str`)
- tabs are not allowed as the first character of a block scalar
- `Parser` parses empty scalar as '~' HOT 1
- Support no-std with alloc crate
- Integration with google oss-fuzz fuzzing service
- Maintainers HOT 8
- unsafe-libyaml looks... unsafe? HOT 1
- Dynamically choosing a YAML document path? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from yaml-rust.