5个版本

0.0.5 2023年6月3日
0.0.4 2023年5月23日
0.0.3 2023年5月20日
0.0.2 2023年5月18日
0.0.1 2023年5月18日

#103解析器工具

Download history 1/week @ 2024-03-14 2/week @ 2024-03-28 3/week @ 2024-04-04

58 每月下载量

MIT/Apache

110KB
2.5K SLoC

Crates.io dependency status Documentation Minimum rustc version LICENSE LICENSE

占位符crate - DaisyChain 目前仍在开发中,尚未准备好使用!

DaisyChain 提供了解析Unicode文本的库。它旨在拥有一个温和且直观的API,同时不牺牲性能(可以是零拷贝)。作为一个库而不是一个框架,这意味着它可以与其他解析工具包一起使用并补充它们。

概述

use daisychain::prelude::*;
use std::str::FromStr;

struct Time {
    hours: u32,
    mins: u32,
}

impl FromStr for Time {
    type Err = ParsingError;

    /// eg "09:23" or "23:59"
    fn from_str(s: &str) -> Result<Self, Self::Err> {
        let (_cursor, hours, mins) = dc::Cursor::from(s)
            .digits(2..=2)             // matching also sets the selection
            .parse_selection::<u32>()  // daisychain will use u32::FromStr
            .text(":")
            .digits(2..=2)
            .parse_selection()         // often no need to specify type explicitly
            .end_of_stream()           // ensure we are at end-of-string
            .validate()?;
        Ok(Time { hours, mins })
    }
}

请参阅 DaisyChain食谱 以获取更多示例

许可

daisychain 在MIT许可或Apache许可(版本2.0)的条款下分发

依赖项

~72–360KB