openlang

impl FromIterator의 항목 타입 알아내기

다른 사람이 만든 제네릭 API를 감싸는 래퍼를 만들고 있는데, 이 API의 FromEncoding 트레이트는 대부분의 기본 타입을 지원해요[1] (#footnote-682731-1). 이 API가 내놓는 값들을 컬렉션에 모으는 기능을 래퍼에 넣고 싶어요.

처음에는 “컬렉션이 FromIterator<Element>를 구현하니까 그걸 쓰면 되지 않을까?”라고 생각했어요. 그런데 Rust가 제가 어떤 Element를 뜻하는지 알아내지 못하네요. 여러 impl FromEncoding for IterElement가 각각 impl FromIterator<IterElement> for Bucket<BucketElement>에 해당할 수 있으니 충분히 이해는 가요. 이걸 해결할 방법이 있을까요, 아니면 지원하는 컬렉션을 몇 가지, 예를 들어 Vec와 HashSet로 제한해야 할까요?

XY 문제인지 판단하는 데 도움이 될까 해서 덧붙이면, 실제 트레이트는 rusqlite::FromSql예요. ↩︎ (#footnote-ref-682731-1)

영어에서 번역원문 보기

이어지는 대화 2

서로의 근거를 따라
  1. 고유 링크

    실패하는 작은 예제와 컴파일러 진단을 함께 올려 주실 수 있을까요? 이 타입들에 어떤 제약을 표현하려는 건지 잘 모르겠어요. 컴파일러가 거부한 시도를 보면 해결책을 찾을 출발점이 훨씬 명확해질 거예요.

    영어에서 번역원문 보기

같은 질문의 다른 갈래

  1. 다른 클래스 안에 있는 클래스를 상속하려면 어떻게 하나요?

    안녕하세요, 제가 코드를 바꿀 수 없는 패키지에 다음과 같은 클래스 계층이 있어요: 편하게 쓰려고 Inner를 감싸는 래퍼를 추가하려는데, Inner가 바깥 인스턴스에 의존해서 지금까지는 바깥 클래스의 서브클래스 안에 넣는…

    답글 1최근 활동 scala
  2. Lean4의 have 바인딩과 let 바인딩 비교

    아래 두 표현식을 보니 그리고 똑같이 동작하더군요. 정리를 증명할 때도 마찬가지예요. 서로 바꿔 써도 되나요? 차이가 뭔가요?

    답글 3최근 활동 lean-4
  3. 문자열 배열을 값으로 갖는 TypeScript Map 초기화

    각 항목이 문자열 배열을 담는 Map을 만들고 있어요. 타입 선언과 초기화를 한 문장으로 같이 하려면 어떻게 하나요? 제 (단순한) 시도는 이랬어요: 그랬더니 이렇게 나와요:

    답글 2최근 활동 typescript