2 个版本
使用旧的 Rust 2015
0.1.1 | 2015年9月23日 |
---|---|
0.1.0 | 2015年9月21日 |
#13 in #mercurial
16KB
241 行
HgLib:Mercurial 命令服务器的 Rust 客户端库
此软件包提供 Rust 编程语言对 Mercurial 分布式版本控制系统 (DVCS) 的客户端接口,使用 Mercurial 的 命令服务器。命令服务器旨在允许工具围绕 Mercurial 仓库构建,而不必依赖于 Mercurial 的内部 API 或许可证。
API 文档: http://kbullock.ringworld.org/rustdoc/hglib/
安装
要使用 hglib,请将软件包添加到您的 Cargo.toml
[dependencies]
hglib = "0.1.1"
lib.rs
:
Mercurial 命令服务器的客户端库
此软件包提供 Rust 编程语言对 Mercurial 分布式版本控制系统 (DVCS) 的客户端接口,使用 Mercurial 的 命令服务器。命令服务器旨在允许工具围绕 Mercurial 仓库构建,而不必依赖于 Mercurial 的内部 API 或许可证。
高级 API
cmdserver
模块提供了一个高级接口,用于管理启动和与命令服务器实例的通信
use hglib::cmdserver::CommandServer;
let cmdserver = CommandServer::new().ok().expect("failed to start command server");
此高级接口目前大部分尚未实现,但基于已正常工作的原始 API。
原始 API
connection
模块中的较低级别 API 允许您在命令服务器协议级别运行命令。命令的组装和结果分块读取是手动完成的。
use hglib::connection::Connection;
use hglib::Chunk;
let mut conn = Connection::new().ok().expect("failed to start command server");
let (capabilities, encoding) =
conn.read_hello().ok().expect("failed to read server hello");
let cmditer =
conn.raw_command(vec![b"log", b"-l", b"5"])
.ok().expect("failed to send raw command");
for chunk in cmditer {
match chunk {
Ok(Chunk::Output(s)) => { io::stdout().write(&s); },
Ok(Chunk::Error(s)) => { io::stdout().write(&s); },
Ok(Chunk::Result(r)) => println!("command exited with status: {}", r),
Ok(_) => {},
Err(e) => panic!("failed to read chunk: {}", e),
}
}
依赖项
~115KB