首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何创建一个公共结构,其中所有的字段都是公共的,而不是为每个字段重复`pub`?

如何创建一个公共结构,其中所有的字段都是公共的,而不是为每个字段重复`pub`?
EN

Stack Overflow用户
提问于 2018-12-20 10:11:14
回答 1查看 6.6K关注 0票数 14

我如何在Rust中定义一个公共结构,其中所有字段都是公共的,而不必在每个字段前面重复pub修饰符?

理想的做法是使用pub_struct宏:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pub_struct! Foo {
    a: i32,
    b: f64,
    // ...
}

这相当于:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pub struct Foo {
    pub a: i32,
    pub b: f64,
    //...
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-20 13:30:56

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
macro_rules! pub_struct {
    ($name:ident {$($field:ident: $t:ty,)*}) => {
        #[derive(Debug, Clone, PartialEq)] // ewww
        pub struct $name {
            $(pub $field: $t),*
        }
    }
}

不幸的是,derive可能只适用于结构、枚举和联合,所以我不知道如何将它们提升到调用方。

用法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pub_struct!(Foo {
    a: i32,
    b: f64,
});

如果我不需要括号和分号,比如Rust支持阅读器宏,那就更好了。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53866508

复制
相关文章
zTree设置异步加载后展开
//不能直接配置展开属性 因为没有数据,需要添加回调函数,异步加载成功展开 callback: { onAsyncSuccess: zTreeOnAsyncSuccess } //异步加载成功回调函数 function zTreeOnAsyncSuccess(event, treeId, treeNode, msg){ $.fn.zTree.getZTreeObj(treeId).expandAll(true); }
河岸飞流
2019/08/09
1.2K0
android获取textview展开渲染后的高度
    当你需要获取textview真正高度时,相信会有不少人会在onCreate函数中调用textview的getHeight()方法,简单粗暴,确实,这是个很方便的方法,但是不幸的是textview在onCreate中根本还没有展开,所以根本获取不到textview的真正高度,因此我们需要给textview绑定一个监听器,在渲染结束后调用,方法如下: ViewTreeObserver observer = contentView.getViewTreeObserver(); observer.a
forrestlin
2018/05/24
1.7K0
Linux登录后显示提示信息
Linux可以设置登录前后的欢迎信息,虽然没啥技术含量,但却是非常实用的一个小技巧。 实现登录消息的功能,可以修改3个文件。
知识浅谈
2020/03/25
4.8K0
Firefox 扩展开发 扩展学习 工具
要开发Firefox扩展当然需要一些工具和教程,这里根据笔者的所得,略略写一下: 教程:   教程嘛,网上基本没有什么中文资料,最多也就一个简单,非常简单的入门说明。所以教程还是以官网的为主:https://developer.mozilla.org/En 工具:   官网的教程中,会提到一些工具。   1.Firefox 3.0,这个肯定必不可少了。在此推荐3.0,因为最新版3.6或者3.7,那些扩展还没有更新跟进,所以要想安装更多的扩展,还是以3.0为好。   2.Firebug,这个不必多说。虽然我只
用户1258909
2018/07/03
7210
Toast提示工具类
APP开发中我们常用的与用户交互的消息就是Toast 但是Android原生的Toast 比较繁琐, 我们来比较一下
晨曦_LLW
2020/09/25
6460
axure 发布后隐藏顶部菜单 或展开顶部菜单[通俗易懂]
axure 9.0 版本在发布后HTML页面打开时总是在顶部弹出菜单 既不美观也影响效果
全栈程序员站长
2022/09/23
1.6K0
axure 发布后隐藏顶部菜单 或展开顶部菜单[通俗易懂]
Discourse 升级后提示 https 混合内容
其实 Discourse 如果安装的时候使用了 https ,那么你可用修改配置强制所有内容都使用 https。
HoneyMoose
2020/10/05
5450
Discourse 升级后提示 https 混合内容
bootstrap 提示工具 常用样式
<h4>工具提示(Tooltip)插件 - 锚</h4> 这是一个 <a href="#" class="tooltip-test" data-toggle="tooltip" title="默认的 Tooltip">默认的 Tooltip</a>. 这是一个 <a href="#" class="tooltip-test" data-toggle="tooltip" data-placement="left" title="左侧的 Tooltip">左侧的 Tooltip</a>. 这是一个 <a href="#" data-toggle="tooltip" data-placement="top" title="顶部的 Tooltip">顶部的 Tooltip</a>. 这是一个 <a href="#" data-toggle="tooltip" data-placement="bottom" title="底部的 Tooltip">底部的 Tooltip</a>. 这是一个 <a href="#" data-toggle="tooltip" data-placement="right" title="右侧的 Tooltip">右侧的 Tooltip</a> <h4>工具提示(Tooltip)插件 - 按钮</h4> <button type="button" class="btn btn-default" data-toggle="tooltip" title="默认的 Tooltip"> 默认的 Tooltip</button> <button type="button" class="btn btn-default" data-toggle="tooltip" data-placement="left" title="左侧的 Tooltip">左侧的 Tooltip </button> <button type="button" class="btn btn-default" data-toggle="tooltip" data-placement="top" title="顶部的 Tooltip">顶部的 Tooltip </button> <button type="button" class="btn btn-default" data-toggle="tooltip" data-placement="bottom" title="底部的 Tooltip">底部的 Tooltip </button> <button type="button" class="btn btn-default" data-toggle="tooltip" data-placement="right" title="右侧的 Tooltip">右侧的 Tooltip</button> <script>
用户5760343
2019/07/05
7060
bootstrap 提示工具 常用样式
Mac 更新 Catalina 后 git 提示xcrun error
Сannot Run Git xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun 这是因为更新系统后会卸载xcode,重新安装后会缺失xcode的命令行工具(command line tools),所以导致部分工具无法在终端运行。 第一种方法: 运行以下命令: xcode-select --install 并下载xcode命令行工具即可。 第二种方法: cd /Library/Developer/CommandLineTools/usr/bin/ ll | grep "xcrun" 如果结果为空,则表示找不到。 执行: sudo ln -s /usr/bin/xcrun
KEVINGUO_CN
2020/03/17
1.2K0
AngularDart Material Design 工具提示 顶
工具提示卡的目标可以是任何元素,例如按钮,输入,链接等。目标也可以是help_outline图标,其充当实际目标的代理。
南郭先生
2018/09/30
1.3K0
kite pro 代码提示完成工具
api sdk查询,在搜索栏输入后点击右侧的搜索, docs are following cursor,自动查询光标选中的文本对应的sdk
sofu456
2021/02/02
8700
如何在使用了updatepanel后弹出提示信息
转载:http://www.cnblogs.com/brusehht/archive/2009/03/19/1416802.html
跟着阿笨一起玩NET
2018/09/19
9410
解决macos安装软件后提示已损坏问题
我是经常在github下载一些开源工具,安装完成之后,提示已损坏,无法打开(如下图),这是因为软件没有签名,被系统阻止运行了
sgr997
2023/10/12
6980
解决macos安装软件后提示已损坏问题
PowerBI 工具提示 在图上显示图
很多人会好奇的是,这个页面如何随着其他的图而变呢?其道理在于它会受到其他图的筛选。
BI佐罗
2020/08/20
2.3K0
jQuery 工具栏提示插件:qTip
qTip 是一个 jQuery 工具栏提示插件,它能够帮你生成漂亮的工具栏提示。该插件支持多种浏览器 ,并且在主流的浏览器上都测试过,并且 qTip 还有 scripting API,使得我们能够通过一些 callback 方法或者属性就能非常扩展它的功能。
Denis
2023/04/14
1.9K0
jQuery 工具栏提示插件:qTip
后渗透工具Koadic实战
渗透测试大致可以分为以下五个阶段:侦察、扫描、获得访问权限、维护访问/持久性、数据渗漏。Koadic是发布于DEFCON上的一个后渗透工具,它可用于以上列举的最后两个阶段,即权限维持和数据渗漏。
FB客服
2019/05/14
1.8K0
后渗透工具Koadic实战
【实用代码】复制内容后弹出提示框教程
效果图 代码 <!-- 复制提醒开始 --> <link rel="stylesheet" href="https://cdn.bootcss.com/sweetalert/1.1.3/sweetalert.min.css" /> <script type="text/javascript" src="https://cdn.bootcss.com/sweetalert/1.1.3/sweetalert.min.js"></script> <script> document.body.onco
回忆大大
2023/03/18
2K0
【实用代码】复制内容后弹出提示框教程
js单击输入框后弹出提示信息效果
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <meta name="
欢醉
2018/01/22
11.1K0
js单击输入框后弹出提示信息效果
ubuntu安装docker-compose后运行提示No such file or directory
本人新搞了一台arm架构的vps,安装了ubntu20.0系统,使用apt install -y docker-compose安装了docker-compose后,使用docker-compose命令时却提示出错。
用户2135432
2023/10/21
1.7K0
点击加载更多

相似问题

如何在onclick几秒钟后隐藏tippy js工具提示?

126

在按下时显示工具提示,反应挂钩,几秒钟后隐藏。

12

加载时显示引导工具提示,并在几秒钟后自动隐藏

20

需要在几秒钟后从移动电话点击隐藏工具提示

13

如何优雅地展开jQuery UI工具提示?

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文