Impl Trait as field type

I have a function taking impl MyTrait as parameter:

fn create_struct(t: impl MyTrait) -> MyStruct {
    MyStruct {
        field: t

What is the type of field? As we can't use impl MyTrait in a struct field

You would need a generic struct.

struct MyStruct<T> {
    field: T, 
fn create_struct<T: MyTrait>(t: T) -> MyStruct<T> {
    MyStruct { field: t }

Yes of course, just (re)read this part of the book:

it's just syntax sugar for generic so yes, I need generic for my struct too.


This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.