rust-unofficial/patterns
Incorrect text in Command pattern description
Ouverte
#346 ouverte le 18 févr. 2023
A-patternC-amendmentgood first issue
Métriques du dépôt
- Stars
- (6 622 étoiles)
- Métriques de merge PR
- (Aucune PR mergée en 30 j)
Description
Since function pointers implement all three traits Fn, FnMut, and FnOnce we could as well pass and store closures instead of function pointers.
This is not exactly correct function pointers can be created only from non-capturing closures. Which can be easily verified if you change example little bit:
error[[E0308]](https://doc.rust-lang.org/stable/error_codes/E0308.html): mismatched types
--> src/main.rs:41:26
|
41 | schema.add_migration(|| format!("create {}",table), || "drop table".to_string());
| ------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected fn pointer, found closure
| |
| arguments to this function are incorrect
|
= note: expected fn pointer `fn() -> String`
found closure `[closure@src/main.rs:41:26: 41:28]`
note: closures can only be coerced to `fn` types if they do not capture any variables