如何在没有定义类型的情况下设置泛型请求?

时间:2015-06-11 17:38:56

标签: rust

对不起我的英语。

我正在为Rust开发一个Haskell的Parsec库版本。当我尝试为parsec定义类型别名时,比如Swift中的define:

struct Parsec<T, S:CollectionType> {
    typealias Parser = (BasicState<S>)->Result<T, SimpleError<S.Index>>
}

我想写:

pub type Result<T> = result::Result<Arc<T>, SimpleError>;
pub type Parsec<T, R, S> where S:State<T> = Box<FnMut(&mut S)->Result<R>>;

但它有编译错误:

  

编译raskell v0.1.0(file:/// Users / march / jobs / raskell)   src / parsec / atom.rs:7:45:7:74错误:   类型参数T未使用[E0091]   src / parsec / atom.rs:7 pub类型Parsec其中S:State = BoxResult&gt ;;

但是如果我忽略它,那么类型派生会遇到一些困难。就像State<T>的一些参数一样,应该是泛型类型,但编译器在编译时不能知道类型。

有一个完整的Swift 2.0 edition,但单元测试尚未完成。有一个golang edition有更多的单元测试和一个lisp like sample project。也许这些项目可以帮助我展示这个想法和我的问题。

无法构建Rust edition that I am writing。如果您尝试cargo build,则会看到一些错误。

0 个答案:

没有答案