在不使用关联类型的情况下简化类型签名

时间:2016-07-19 14:22:49

标签: generics rust traits

有没有办法在这里简化类型签名

$('#fullpage').fullpage({
    afterLoad (anchorLink, index, slideAnchor, slideIndex){
        if($(".homeFour").is(".active")){
            // Do stuff
        }
    },
    //...
});

这样

pub struct OrderBook<T: PriceLevel, U: PriceLadder<T>> {
    levels: U,
    phantom: PhantomData<T>,
}

可以写成如下?

type HashBook = OrderBook<LinkedHashLevel, HashmapLadder<LinkedHashLevel>>;

我知道相关类型,但希望能够使用具有不同价格水平实施的单一价格阶梯。

以下完整的可编辑代码......

type HashBook = OrderBook<LinkedHashLevel, HashmapLadder>;

1 个答案:

答案 0 :(得分:2)

我认为没有必要更改类型签名。考虑一下你的悲伤:

  

我了解相关类型,但希望能够使用具有不同价格水平实施的单个价格阶梯

也许只需创建一个由价格水平实施参数化并具有固定价格阶梯的类型别名:

type HashBook<Level> = OrderBook<Level, HashmapLadder<Level>>;