error[E0391]: cycle detected when computing layout of `S` | = note: ...which requires computing layout of `std::option::Option<::It>`... = note: ...which requires computing layout of `std::option::Option`... = note: ...which again requires computing layout of `S`, completing the cycle = note: cycle used when computing layout of `std::option::Option` error: aborting due to previous error For more information about this error, try `rustc --explain E0391`.