rust 相关问题

Rust是一种用于以简单方式编写高度可靠和快速软件的语言。它可用于从高级代码到特定于硬件的代码,从大型熨斗到小型设备。

将录音从 js 发送到 actix-web 服务器以保存到磁盘

当前正在尝试将一些录制的音频从浏览器发送到 actix-web 服务器,并尝试将其保存到磁盘,从而从通用媒体播放器中生成可播放的曲目。我是...

回答 1 投票 0

使用自定义结构和使用宏编译 Rust 项目失败

我开始学习 Rust 并尝试项目的结构。 现在我有这样的项目结构: 项目 └──── 源 │ └──── 核心 │ │ └──── lib.rs │ │ └──── Cargo.toml │ └─── 一个...

回答 1 投票 0

如何创建具有“静态生命周期”的 Vec? [重复]

我正在努力声明具有静态生命周期的 Vec。基本上,我尝试了这个语法,但出现了错误: 让 v: '静态 Vec = vec![1, 2, 3]; 错误:特征对象类型的生命周期必须是

回答 1 投票 0

使用来自 tokio::runtime 的异步和盒装错误

我得到了这段无法编译的代码。 [依赖项] tokio = {版本 =“1.37.0”,功能 = [“完整”]} 使用 std::error::Error ; 异步 fn external_function() -> 结果&...

回答 1 投票 0

如何将URL查询中的“+”解码为空格?

我正在尝试使用 urlencoding (版本 2.1.3)从 URL 中解码日期时间,如下所示: fn 主() { 让结果 = urlencoding::decode("gmt_create=2024-05-05+11%3A14%3A19"); 优先...

回答 1 投票 0

SQLx 中的 `&mut *transaction` 和 `&mut transaction` 有什么区别?

我很好奇在我的示例中 &mut *transaction 和 &mut transaction 之间有什么区别,因为我不认为该 transaction 是一个开始的指针,但出于某种原因 &mut *

回答 2 投票 0

Rust !ink 教程失败

嗨,我对 Rust 很陌生,想了解 !ink 智能合约。我正在遵循在线教程(https://use.ink/getting-started/creating-an-ink-project),但是当我尝试测试 fli 时...

回答 1 投票 0

if let 语句中临时对象的生命周期

下面的代码中 Value(1) 和 Value(2) 的生命周期为何不同? #![允许(irrefutable_let_patterns)] 结构值(i32); impl Drop for Value { fn drop(&mut self) { 打印!(&

回答 1 投票 0

如何使用 objc2 将 Rust 函数作为选择器传递到 NSMenuItem.action 中?

我有下一个代码来在AppDelegate中构建应用程序菜单(AppDelegate代码取自官方示例): 实现 AppDelegate { fn new(mtm:MainThreadMarker,菜单:选项 我有下一个代码用于在AppDelegate中构建应用程序菜单(AppDelegate代码取自官方示例): impl AppDelegate { fn new(mtm: MainThreadMarker, menu: Option<Menu>) -> Id<Self> { let this = mtm.alloc(); let this = this.set_ivars(Ivars { mtm, menu, }); unsafe { msg_send_id![super(this), init] } } fn build_menu(&self, menu: &Menu, ns_menu: &Id<NSMenu>) { let ivars = self.ivars(); for item in menu.items.iter() { let ns_menu_item = NSMenuItem::new(ivars.mtm); let title = NSString::from_str(&item.name); unsafe { ns_menu_item.setTitle(&title) }; if let Some(on_click) = &item.on_click { unsafe { ns_menu_item.setAction(Some(on_click)) }; } if let Some(submenu) = &item.submenu { let ns_submenu = NSMenu::new(ivars.mtm); self.build_menu(submenu, &ns_submenu); ns_menu_item.setSubmenu(Some(&ns_submenu)); } ns_menu.addItem(&ns_menu_item); } } fn create_menu(&self, application: Id<NSApplication>) { let ivars = self.ivars(); if let Some(menu) = &ivars.menu { let main_menu = NSMenu::new(ivars.mtm); application.setMainMenu(Some(&main_menu)); self.build_menu(menu, &main_menu); } } } 问题出在这部分代码: if let Some(on_click) = &item.on_click { unsafe { ns_menu_item.setAction(Some(on_click)) }; } on_click: fn()是一个Rust函数,我不知道如何使用objc2将其作为Objective-C选择器传递。 在生成的 AppKit 中,该方法如下所示: #[method(setAction:)] pub unsafe fn setAction(&self, action: Option<Sel>); 我很确定有一种更简单的方法,但是...我已经使用自定义 NSMenuItem 类解决了我的问题: #[derive(Debug)] #[allow(unused)] struct MacMenuItemIvars { action: Option<fn()>, } declare_class!( struct MacMenuItem; unsafe impl ClassType for MacMenuItem { type Super = NSMenuItem; type Mutability = mutability::MainThreadOnly; const NAME: &'static str = "MenuItem"; } impl DeclaredClass for MacMenuItem { type Ivars = MacMenuItemIvars; } unsafe impl MacMenuItem { #[method(callback)] fn __callback(&self) { if let Some(action) = self.ivars().action { action(); } } } unsafe impl NSObjectProtocol for MacMenuItem {} ); impl MacMenuItem { fn new<S>(mtm: MainThreadMarker, title: S, action: Option<fn()>) -> Id<Self> where S: Into<String>, { let this = mtm.alloc(); let this = this.set_ivars(MacMenuItemIvars { action, }); let item: Id<MacMenuItem> = unsafe { msg_send_id![super(this), init] }; let title: String = title.into(); let title = NSString::from_str(&title); unsafe { item.setTitle(&title) }; if action.is_some() { unsafe { item.setTarget(Some(&item)) }; unsafe { item.setAction(Some(sel!(callback))) }; } item } } 必须有一种方法可以使用 Objective-C 块达到相同的结果。不过我没明白怎么办。

回答 1 投票 0

Rust 中的 Unix 域套接字

我编写了一个示例代码,其中我试图利用unix域套接字在2个线程之间进行通信,但无法实现这一点。客户端连接到服务器后,客户端...

回答 1 投票 0

在 Rust 中迭代 ReadDir 并将文件名附加到数组中

我正在尝试使用 fs::read_dir() 并迭代结果并将所有文件名附加到数组中。像这样的东西,除了这不起作用: 让 mut 结果:Vec<&str> = Ve...

回答 1 投票 0

execute(&mut *transaction) 与execute(&mut transaction)

我很好奇在我的示例中execute(&mut *transaction) 和execute(&mut transaction) 之间有什么区别,因为我不认为transaction 是一个开始的指针,但对于s...

回答 1 投票 0

具有生命周期和多个引用的 Rust 程序的糟糕设计

我对 Rust 语言非常陌生,所以请耐心等待。 我正在 Rust 中实现一个图形数据结构。对于图中的每个节点(还有边 - 从这个片段中省略),我有一个结构......

回答 1 投票 0

返回 Rust 中枚举变体的引用

以下代码是我根据《Rust 编程语言》书第 13 章修改的 #[导出(调试)] 枚举衬衫颜色 { 红色的, 蓝色的, 耶罗, } 结构库存{ 衬衫:Vec<

回答 1 投票 0

如何在 Rust 中实现异步 Drop?

我有一个返回类型的异步 fn,并且想要在调用另一个异步函数的该类型上实现 Drop。目前尚不清楚如何执行此操作,并且我在文档中找不到任何内容。最

回答 2 投票 0

异步函数作为异步函数的参数

我试图声明一个异步函数,它接受另一个异步函数作为参数,该函数必须通过不可变引用接受参数 只是为了说明我想给他什么......

回答 1 投票 0

如何修复错误:仍需要 5849 字节的正文8 MiB | 401.00 KiB/秒

(https://i.sstatic.net/gsKmQNIz.png) 在 Github 上克隆项目时,我遇到了这个错误。我可以采取哪些步骤来修复此错误? (https://i.sstatic.net/AojXym8J.png) 首先,这个错误

回答 1 投票 0

Tauri为什么要修改调用函数的参数名称?

我正在使用 Tauri 构建 GUI。在我的后端我定义了两个命令: #[tauri::命令] fn 功能测试(消息:字符串){ println!("已收到:{}", msg); } #[tauri::命令]

回答 1 投票 0

在Windows上查找重定向输入目录的路径

我正在编写一段代码,用于检查 stdin 是否代表一个目录,如果是,则对其执行一些操作 目前,我有可在 Unix 系统上运行的代码: 让 fd = stdin().as_fd().

回答 1 投票 0

如何将任何错误包装到 Rust 中的自定义错误类型中

假设我想创建一个 MyError 类型,可以在其中放入任意错误 - 我想在特征方法的结果中返回我的错误类型,以便从实现细节中抽象出来...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.