Bonjour à toutes et à tous,
Je suis en train de développer un petit jeu en utilisant Rust (évidemment), macroqued et l'ECS legion.
Mon soucis est que je souhaite exécuter une requête qui me renvoie un tuple, mais j'ai une erreur de type.
Voici mon code :
1 2 3 4
|
let (request_entity, request_init) = <(Entity, &RequestInit)>::query()
.iter(ecs)
.find_map(|(entity, request)| Some((*entity, *request)) ); |
et me message d'erreur résultant :
error[E0308]: mismatched types
--> src\systems\initialize_district.rs:14:9
|
14 | let (request_entity, request_init) = <(Entity, &RequestInit)>::query()
| ______^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^___-
| |
| | expected enum `Option`, found tuple
15 | | .iter(ecs)
16 | | .find_map(|(entity, request)| Some((*entity, *request)) );
| |_____________________________________________________________________- this expression has type `Option<(legion::Entity, components::RequestInit)>`
|
= note: expected enum `Option<(legion::Entity, components::RequestInit)>`
found tuple `(_, _)`
Je comprends que rust se plaint que le type n'est pas celui attendu, mais je ne vois pas pourquoi cette erreur.
J'ai besoin au final d'un tuple (Entity, Option<RequestInit>), sachant que Entity est une structure de legion et RequestInit unitaire est une structure de mon code
Si quelqu'un a une idée, je suis preneur.
Merci à tous
Partager