Comments (11)
Will 2d6a83d be enough?
from yaml-rust.
I'll make some tests to check if trim()
is needed.
Thanks.
from yaml-rust.
I made some tests and quotes are also needed for a string with only spaces.
So I don't know exactly how it is parsed, but perhaps quotes are also needed when there are spaces at the start/end of a string.
In any case, your commit is not sufficient:
the case of a string like " "
will be emitted without quotes and the parser will try to parse it as a Unit
.
from yaml-rust.
I found a reference implementation here: https://github.com/adamkiss/LibYAML/blob/master/yaml/Escaper.php
We are also missing the single quoted part.
I think adding TAB and SPACE to the require quoted character is OK.
from yaml-rust.
I don't think adding SPACE to the required character is what we want.
For instance, if we have the string "my string", it can be emitted without quotes in YAML.
I don't know the precise rules about the spaces however. Do we need quotes when the string starts/ends with space?
from yaml-rust.
Yeah, I get your point. But I think quoting something like "my string" is not a bad idea (the php version do this) and more robust. I'm not sure whether just quoting string starts/ends with space will introduce some corner cases?
from yaml-rust.
I would strongly prefer not to quote strings unless necessary, even if it means we need to iterate on the heuristic a few times to get it right. Quoting for leading/trailing whitespace seems like a good start.
from yaml-rust.
It looks good e52b058 ?
from yaml-rust.
e52b058: No need to check for starts_with or ends_with '\t'
because any string containing '\t'
anywhere will be quoted. Just check for ' '
.
from yaml-rust.
A style comment:
no need to use return
in the last statement: just omit the semi-colon.
from yaml-rust.
Closed by #46
from yaml-rust.
Related Issues (20)
- 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
- `True` and `False` boolean literals seem to be parsed as strings HOT 2
- Is this crate maintained? HOT 4
- Read This First ~ Switch to the actively maintained yaml-rust2 fork
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.