openlang

找出 impl FromIterator 背后的元素类型

我在给别人的泛型 API 写包装,它的 FromEncoding trait 支持大多数基本类型[1] (#footnote-682731-1)。我想让这个包装能够把该 API 提供的值收集到一个集合里。

一开始我想,“集合实现了 FromIterator<Element>,直接用它不就行了吗?”看来不行,因为 Rust 无法确定我指的是哪个 Element,这也很合理,多个 impl FromEncoding for IterElement 都可能对应一个 impl FromIterator<IterElement> for Bucket<BucketElement>。有办法处理这种情况吗,还是说应该只支持固定的几个集合,比如 Vec 和 HashSet?

如果这有助于排除 XY 问题,实际用到的 trait 是 rusqlite::FromSql。↩︎ (#footnote-ref-682731-1)

从英语翻译查看原文

后续讨论 2

顺着彼此的依据读下去
  1. 固定链接

    可以提供一个会失败的小例子,以及编译器的诊断信息吗?我不太清楚你想表达这些类型的什么约束。看到编译器拒绝的具体尝试后,我们会更容易确定从哪里开始找解决办法。

    从英语翻译查看原文

同一个问题的其他角度

  1. 怎样继承另一个类里面的类?

    你好, 在一个我无法修改代码的包里,类的层次结构如下。 我想给 Inner 加个方便使用的包装,但因为 Inner 依赖外层实例,目前只做到把它放进外层类的子类里面。 可惜,在多个地方继承 Outer,就意味着每个新子类里都得重复这个方便使用的 ca…

    回复 1最近活动 scala
  2. 比较 Lean4 中的 have 和 let 绑定

    我发现下面两个表达式 以及 行为完全相同。证明定理时也是这样。 它们可以互换吗?区别在哪里?

    回复 3最近活动 lean-4
  3. 初始化以字符串数组为值的 TypeScript Map

    我在创建一个 Map,其中每个条目都保存字符串数组。怎样在一条语句中同时声明类型并完成初始化? 我(天真地)这样试了一下。 结果是下面这个错误。

    回复 2最近活动 typescript