Crates.io | quoted-string-parser |
lib.rs | quoted-string-parser |
version | 0.1.0 |
source | src |
created_at | 2022-05-06 12:35:08.326667 |
updated_at | 2022-05-06 12:35:08.326667 |
description | Quoted string parser for grammar defined in RFC3261 |
homepage | https://github.com/sancane/quoted-string-parser |
repository | https://github.com/sancane/quoted-string-parser |
max_upload_size | |
id | 581675 |
size | 15,169 |
This crates implements a parser for text that meets the grammar for "quoted-string" as described in SIP: Session Initiation Protocol. RFC3261
quoted-string = SWS DQUOTE *(qdtext / quoted-pair ) DQUOTE
qdtext = LWS / %x21 / %x23-5B / %x5D-7E / UTF8-NONASCII
quoted-pair = "\" (%x00-09 / %x0B-0C / %x0E-7F)
LWS = [*WSP CRLF] 1*WSP ; linear whitespace
SWS = [LWS] ; sep whitespace
UTF8-NONASCII = %xC0-DF 1UTF8-CONT
/ %xE0-EF 2UTF8-CONT
/ %xF0-F7 3UTF8-CONT
/ %xF8-Fb 4UTF8-CONT
/ %xFC-FD 5UTF8-CONT
UTF8-CONT = %x80-BF
DQUOTE = %x22 ; " (Double Quote)
CRLF = CR LF ; Internet standard newline
CR = %x0D ; carriage return
LF = %x0A ; linefeed
WSP = SP / HTAB ; whitespace
SP = %x20
HTAB = %x09 ; horizontal tab
ParThe QuotedStringParser object provides an simple API to validate that input text meets the "quoted-string" grammar.
use quoted_string_parser::{QuotedStringParser, QuotedStringParseLevel};
// two qdtexts separated by a whitespace
assert!(QuotedStringParser::validate(
QuotedStringParseLevel::QuotedString, "\"Hello world\""));
// one quoted-pair
assert!(QuotedStringParser::validate(
QuotedStringParseLevel::QuotedString, "\"\\\u{7f}\""));
QuotedStringParser derives from Parser, if you need more control over the parser itself you can use any of the operations defined in the pest crate. Check the documentation for more information.
https://docs.rs/quoted-string-parser
Patches and feedback are welcome.
If you find this project helpful, you may consider making a donation:
This project is licensed under either of