rust-unofficial/patterns

Incorrect text in Command pattern description

开放

#346 创建于 2023年2月18日

 (0 条评论) (0 个反应) (0 位负责人)Shell (292 个派生)batch import
A-patternC-amendmentgood first issue

仓库指标

星标
 (6,622 个星标)
PR 合并指标
 (30 天内没有已合并 PR)

描述

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

贡献者指南