如何实现自定义“fmt::Debug”特征?

2024-03-09

我想你会做这样的事情:

extern crate uuid;

use uuid::Uuid;
use std::fmt::Formatter;
use std::fmt::Debug;

#[derive(Debug)]
struct BlahLF {
    id: Uuid,
}

impl BlahLF {
    fn new() -> BlahLF {
        return BlahLF { id: Uuid::new_v4() };
    }
}

impl Debug for BlahLF {
    fn fmt(&self, &mut f: Formatter) -> Result {
        write!(f.buf, "Hi: {}", self.id);
    }
}

...但是尝试实现这个特性会产生:

error[E0243]: wrong number of type arguments
  --> src/main.rs:19:41
   |
19 |     fn fmt(&self, &mut f: Formatter) -> Result {
   |                                         ^^^^^^ expected 2 type arguments, found 0

然而,其他实现似乎就是这样做的。我究竟做错了什么?


根据来自的例子std::fmt docs http://static.rust-lang.org/doc/master/std/fmt/index.html:

extern crate uuid;

use uuid::Uuid;
use std::fmt;

struct BlahLF {
    id: Uuid,
}

impl fmt::Debug for BlahLF {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        write!(f, "Hi: {}", self.id)
    }
}

需要强调的部分是fmt:: in fmt::Result。如果没有它,你指的是普通的Result http://static.rust-lang.org/doc/master/std/result/enum.Result.html类型。平原Result type does有两个泛型类型参数,fmt::Result没有。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何实现自定义“fmt::Debug”特征? 的相关文章

随机推荐

  • INVoiceShortcutCenter.shared.getAllVoiceShortcuts 在 iOS 13 中不会返回任何内容

    我不确定我做错了什么 但在这个方法中 INVoiceShortcutCenter shared getAllVoiceShortcuts vShortCuts error in print vShortCuts vShortCuts 是一个
  • 填充形状的图像不会在 FabricJS 中使用 loadFromJSON 加载

    I have JSON带有 Fabric Rect 对象的数据 当我尝试加载这个时JSON数据到织物画布上从JSON加载 形状加载完美 但形状中填充的图案未渲染 仅在单击形状后才会渲染图案 我已将我的代码复制到织物厨房水槽执行模块中 并尝试
  • 无法使用 Apache POI 读取 Excel

    我正在使用 Apache POI 读取 excel 但它不断给出 XSSFWorkbook 类定义发现错误的错误 我使用了不同版本的 Apache poi jar 库 即 4 1 4 0 和 3 12 但它们似乎都没有修复此错误 这是当前导
  • 从 Graphite 迁移到图形浏览器

    石墨网络应用程序不鼓励临时绘图 Graphiti 等人只是花哨的 UI 虽然改进了 UI UX 但对于困扰 Graphite Webapp 的固有线性度量搜索没有做太多事情 如果这里错了请纠正我 但是only我遇到的鼓励临时绘图的选项是图形
  • 请求:网络应用程序的最小框架

    我即将构建一个框架 将 xml 带有嵌入代码 解析为具有 ajax 功能的自动生成的 Web 应用程序 现在 我不想重新发明轮子 所以感谢任何现有的可用解决方案 归结为 有可用的框架吗 这为我创建了回调代码等 最好是php If not 适
  • 如何在 MVC4 中使用 type="url" 而无需 jQuery 将字段验证为 URL?

    情况是这样的 我这里有一个很大的 URL 文本输入框 https asafaweb com https asafaweb com 不过 这不需要遵守 URL 的严格定义 我允许没有方案的地址 然后出于可用性目的默认为 HTTP 例如 sta
  • 如何在iOS中制作一个水平可滚动的UITabBar?

    我的应用程序中的 UITabBar 由 10 多个项目组成 但宽度足以放置所有 10 多个项目 如何在 iOS 中制作水平可滚动的 UITabBar Thanks 至少在某种程度上 你必须自己动手 What might工作 将创建一个 UI
  • mapM 的惰性版本

    假设我在使用 IO 时收到了大量的项目列表 as lt getLargeList 现在我正在尝试申请fn a gt IO b onto as as lt getLargeList bs lt mapM fn as mapM有类型mapM M
  • 大查询将重复字段中的结构更新为 null

    在 Google bigquery 中 我试图对重复字段进行更新 为了进行比较 这是可行的 或者至少被标记为有效 但当然实际上并没有更新该字段 UPDATE my table t SET my field ARRAY SELECT AS S
  • anaconda 在 Windows 上安装 python 3.4

    我想使用 Anaconda 安装和使用 python 3 4 及其众多库 例如 numpy pandas 等 不幸的是 我无法激活 python 3 4 我在 Windows 8 笔记本上安装了 Acaconda 2 0 Anaconda
  • debezium 无法使用带有默认插件 pgoutput 的 postgres 11 访问文件“decoderbufs”

    我是 kafka 新手 我正在尝试使用 debezium postgres 连接器 但即使使用带有标准插件的 postgres 版本 11 我也会收到此错误 org apache kafka connect errors ConnectEx
  • 使用 Django 在 teamcity 中测试覆盖率

    我已经让 teamcity 工作了 它构建并运行了一个自定义测试运行程序 http pypi python org pypi teamcity messages http pypi python org pypi teamcity mess
  • 选择列值已更改的行

    假设我有下表 Value Time 0 15 06 2012 8 03 43 PM 1 15 06 2012 8 03 43 PM 1 15 06 2012 8 03 48 PM 1 15 06 2012 8 03 53 PM 1 15 0
  • 为什么这些 Tomcat 服务器的 JVM 每小时执行一次 Full GC?

    我们运行许多 Tomcat 服务器 并观察到完整的垃圾收集 GC 通常每小时执行一次 特别是当内存使用率相对较低时 精确时间似乎与应用程序服务器启动的时间有关 如果服务器在 01 13 启动 则在 02 13 完成一次 Full GC 下一
  • 如何插入只有默认值的记录?

    如果我有一个包含所有默认列的 SQL 表 例如 标识列 任意数量的所有列都具有默认值 那么插入没有给出显式值的行的 SQL 语句是什么 insert MyTable doh no fields values doh no values 有什
  • 通过嵌入式服务器测试 Solr

    我正在为我的 solr indexer 应用程序编写一些测试 遵循测试最佳实践 我想编写独立的代码 只需加载schema xml and solrconfig xml并为索引搜索测试创建临时数据树 由于应用程序大部分是用java编写的 我正
  • 通过REST API查询HealthKit数据

    是否可以像查询常规 API 经用户同意 一样从 Healthkit 获取数据并将其存储在我的 web 应用程序中 就像是 healthkit com api v1 user GetWeight 如果是 我在哪里可以找到可用方法的列表 如果没
  • D3.js:使用鼠标滚轮滚动缩放 x 轴和数据

    我搜索了其他相关问题 但无论是因为我是 D3 新手 还是作为一名编码员生疏 我无法弄清楚这一点 我有一个图表 我希望能够通过仅在 a 轴和数据上滚动鼠标滚轮来放大 现在 我的整个图表在鼠标滚轮的滚动上进行缩放 而不是仅在 x 轴上进行缩放
  • 使用异步控制器的强类型 RedirectToAction (Futures)

    有了这个代码 它给了我一个警告 Because this call is not awaited execution of the current method continues before the call is completed
  • 如何实现自定义“fmt::Debug”特征?

    我想你会做这样的事情 extern crate uuid use uuid Uuid use std fmt Formatter use std fmt Debug derive Debug struct BlahLF id Uuid im