如何迭代结构体的元素?

2024-01-11

我正在编写一个用于加密网络通信的小型客户端/服务器程序,并具有以下结构以允许端点协商功能。

struct KeyExchangePacket {
    kexinit: u8,
    replay_cookie: [u8; 32],
    kex_algorithms: String,
    kgen_algorithms: String,
    encryption_algorithms: String,
    mac_algorithms: String,
    compression_algorithms: String,
    supported_languages: String,
}

我需要将字段转换为字节以便通过TcpStream,但我目前必须一次转换它们。

send_buffer.extend_from_slice(kex_algorithms.as_bytes());
send_buffer.extend_from_slice(kgen_algorithms.as_bytes());
etc...

有没有办法迭代字段并将它们的字节值推入缓冲区以进行发送?


有没有办法迭代字段

不,您必须自己实现它,或者找到一个可以为您完成此操作的宏/编译器插件。

See 如何迭代或映射元组? https://stackoverflow.com/q/29148544/155423对于类似的问题。

想想迭代器是如何工作的。迭代器必须产生一个single为每次迭代键入。对于由至少 3 种不同类型组成的结构来说,该类型是什么?

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

如何迭代结构体的元素? 的相关文章

随机推荐

  • filezilla,写入失败时出错

    我正在通过 SFTP 和 FileZilla 传输一个非常大 35GB 的文件 现在转账是59 7 完成了 但我不断收到此错误 并且几个小时内该数字都没有改变 Error File transfer failed after transfe
  • 如何对 TextView 中的每个单词而不是每个字符进行字母/翻译动画?

    我正在与以下人员合作Spannable and TextView像这样 我已经为每个角色设置了动画 但我想为每个单词设置动画 我怎样才能做到这一点 查看字母并翻译每个单词 从每个单词位置的底部开始 我所说的翻译是指翻译 移动 动画 Sour
  • kubernetes 错误:跳过 pod 同步

    我已经在centos 7上配置了kubernetes master 并在另一个节点centos 7上配置了kubernetes节点 kube master 上运行的服务 kube 控制器管理器 kube api服务器 kube 调度程序 e
  • 为我的流星应用程序设置谷歌登录配置后,如何重置谷歌登录配置?

    我正在学习流星并创建了一个新的应用程序并安装了accounts core accounts google 和accounts ui 这按预期工作并提示我配置谷歌集成 不过 在配置之后 我意识到我使用了错误的 url 并在 Google AP
  • 动画可见性模式,“消失”和“可见”

    因此 当我使用其他小部件设置线性布局的可见性时 我尝试制作动画 从 消失 到 可见 以及相反 我使用切换按钮来显示和隐藏 这是一张显示我想做的事情的图片 我可以显示和隐藏 但我不知道如何正确设置滑动动画 这是我的 xml
  • 用于自动添加“using”语句的 Visual Studio 键盘快捷键

    从小红线开始展开菜单并提供必要选项的键盘快捷键是什么using语句附加到文件顶部 Ctrl shows the menu I find this easier to type than the alternative Alt Shift F
  • 如何使用 jest 模拟 Node-Redis

    我在用jest https github com facebook jest并试图嘲笑节点redis https github com NodeRedis node redis using redis模拟 https github com
  • 以可变的方式绑定成员函数

    我有一个带有可变数量参数的成员函数 存储在std function 我想绑定实例并获得一个独立的函数对象 template
  • 错误:调用 `server.applyMiddleware()` 之前必须 `await server.start()`

    更新后apollo server到版本 3 控制台中显示以下错误 C projects my project node modules apollo server core src ApolloServer ts 554 throw new
  • 如何在 python 中检查字符串是否只包含数字?

    如何检查字符串是否只包含数字 我已经在这里尝试过 我想看到实现这一目标的最简单方法 import string def main isbn input Enter your 10 digit ISBN number if len isbn
  • 使用 DirectoryServices.Protocols 进行 LDAP 搜索速度慢

    我们使用 System DirectoryServices DirectorySearcher 进行 sAMAccountName 查找 这工作得很好 只是当查询某个我们怀疑很大的 AD 时 搜索经常会超时 经过一些研究后 我发现在查询大型
  • C 中不透明类型的定义是什么?它们何时必要和/或有用?

    我已经看到过一些 不透明类型 的概念 但我确实还没有找到一个简洁的答案来说明 C 中不透明类型的定义 更重要的是它们允许我们通过它们的存在来解决哪些问题 谢谢 它最常用于图书馆目的 c 中不透明类型背后的主要原理是通过其指针使用数据以隐藏数
  • 调用堆栈窗口始终为空

    被引入调用堆栈窗口后这个 ASP NET MVC 视频 http channel9 msdn com blogs matthijs aspnet mvc 2 basics introduction by scott hanselman我试图
  • 仅当调整大小结束时才调整 winform 窗口的大小

    有没有办法调整大小Winform窗户就在调整末端大小 这意味着只要单击鼠标 我就会看到线条 并且只有当我离开鼠标 调整大小结束 时 窗口才会在屏幕上调整大小 您将需要使用绘制可逆框架 http msdn microsoft com en u
  • dotnet core 3.1 中 CORS 响应预检的问题

    我面临这个问题 访问 XMLHttpRequest 位于 http localhost 5000 api surpactemp http localhost 5000 api surpactemp 从原点 http 本地主机 4200 ht
  • Backbone JS 多级导航示例

    我正在尝试构建一个可靠的 Backbone JS 实验 其中我有一个包含我的页面的本地 JSON 数据文件 我正在做的一个项目无论如何都有这种要求 我已经编写了这个示例 以便我可以在页面数据中拥有无限的嵌套子页面 看起来效果很好 但当涉及到
  • 在野兽 1.70.0 中使用 Tcp 超时

    我刚刚更新了 boost 库1 68 0 to 1 70 0获取超时操作 beast websocket ssl 客户端异步 example https www boost org doc libs 1 70 0 libs beast ex
  • iPhone 与非 IOS 设备的蓝牙连接

    我想知道是否有办法将 iPhone 用作 HID 设备 与 PS3 等其他设备一起使用 我检查了蓝牙规范 IOS 设备确实支持 HID 配置文件 因此 我认为使用密钥机制配对我的 iPhone 会很容易 并且应该能够毫不费力地开始使用我的
  • 使用 Dagger 模块而不使用“injects”指令

    我试图让 Dagger 在 Module 注释中没有 injects 指令的情况下工作 我的测试项目基于Android 简单 Dagger 示例 https github com square dagger tree master exam
  • 如何迭代结构体的元素?

    我正在编写一个用于加密网络通信的小型客户端 服务器程序 并具有以下结构以允许端点协商功能 struct KeyExchangePacket kexinit u8 replay cookie u8 32 kex algorithms Stri