小编Ale*_*sey的帖子

如何在 Windows 上使用咕噜?是否可以?

我想使用GitHub上的 wiki ,也想在没有网络的情况下使用。
所以我专注于 gollum——一个基于 git 的 Wiki,但这在 Windows 上是不可能的。
但在README.mdGitHub上,他们说在Windows中需要JRuby(1.9.3+兼容),而gollum几乎是支持的。

我想索取有关如何在 Windows 上使用 gollum 的指南,但我没有找到更多信息。

ruby windows

7
推荐指数
1
解决办法
4724
查看次数

具有严格格式的可选字段

我正在尝试构建nom解析器来检查 ID 为 UUID 的 URL

rooms/e19c94cf-53eb-4048-9c94-7ae74ff6d912
Run Code Online (Sandbox Code Playgroud)

我创建了以下内容:

extern crate uuid;
use uuid::Uuid;

named!(room_uuid<&str, Option<Uuid>>,
    do_parse!(
        tag_s!("rooms") >>
        id: opt!(complete!(preceded!(
            tag_s!("/"),
            map_res!(take_s!(36), FromStr::from_str)
        ))) >>

        (id)
    )
);
Run Code Online (Sandbox Code Playgroud)

它几乎可以很好地处理所有情况:

assert_eq!(room_uuid("rooms"), Done("", None));
assert_eq!(room_uuid("rooms/"), Done("/", None));
assert_eq!(room_uuid("rooms/e19c94cf-53eb-4048-9c94-7ae74ff6d912"), Done("", Some(Uuid::parse_str("e19c94cf-53eb-4048-9c94-7ae74ff6d912").unwrap())));
Run Code Online (Sandbox Code Playgroud)

除了 ID 不是有效 UUID 的情况:

assert!(room_uuid("rooms/123").is_err()); # it fails
# room_uuid("rooms/123").to_result() => Ok(None)
Run Code Online (Sandbox Code Playgroud)

据我了解,这是因为opt!将内部转换ErrNone.

我想将 ID 作为可选部分,但如果它存在,它应该是一个有效的 UUID。
不幸的是,我不明白如何将这两件事结合起来:可选性和严格格式。

rust nom

5
推荐指数
1
解决办法
325
查看次数

标签 统计

nom ×1

ruby ×1

rust ×1

windows ×1