Rust是一种用于以简单方式编写高度可靠和快速软件的语言。它可用于从高级代码到特定于硬件的代码,从大型熨斗到小型设备。
将录音从 js 发送到 actix-web 服务器以保存到磁盘
当前正在尝试将一些录制的音频从浏览器发送到 actix-web 服务器,并尝试将其保存到磁盘,从而从通用媒体播放器中生成可播放的曲目。我是...
我开始学习 Rust 并尝试项目的结构。 现在我有这样的项目结构: 项目 └──── 源 │ └──── 核心 │ │ └──── lib.rs │ │ └──── Cargo.toml │ └─── 一个...
我正在努力声明具有静态生命周期的 Vec。基本上,我尝试了这个语法,但出现了错误: 让 v: '静态 Vec = vec![1, 2, 3]; 错误:特征对象类型的生命周期必须是
我得到了这段无法编译的代码。 [依赖项] tokio = {版本 =“1.37.0”,功能 = [“完整”]} 使用 std::error::Error ; 异步 fn external_function() -> 结果&...
我正在尝试使用 urlencoding (版本 2.1.3)从 URL 中解码日期时间,如下所示: fn 主() { 让结果 = urlencoding::decode("gmt_create=2024-05-05+11%3A14%3A19"); 优先...
SQLx 中的 `&mut *transaction` 和 `&mut transaction` 有什么区别?
我很好奇在我的示例中 &mut *transaction 和 &mut transaction 之间有什么区别,因为我不认为该 transaction 是一个开始的指针,但出于某种原因 &mut *
嗨,我对 Rust 很陌生,想了解 !ink 智能合约。我正在遵循在线教程(https://use.ink/getting-started/creating-an-ink-project),但是当我尝试测试 fli 时...
下面的代码中 Value(1) 和 Value(2) 的生命周期为何不同? #![允许(irrefutable_let_patterns)] 结构值(i32); impl Drop for Value { fn drop(&mut self) { 打印!(&
如何使用 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 块达到相同的结果。不过我没明白怎么办。
我编写了一个示例代码,其中我试图利用unix域套接字在2个线程之间进行通信,但无法实现这一点。客户端连接到服务器后,客户端...
在 Rust 中迭代 ReadDir 并将文件名附加到数组中
我正在尝试使用 fs::read_dir() 并迭代结果并将所有文件名附加到数组中。像这样的东西,除了这不起作用: 让 mut 结果:Vec<&str> = Ve...
execute(&mut *transaction) 与execute(&mut transaction)
我很好奇在我的示例中execute(&mut *transaction) 和execute(&mut transaction) 之间有什么区别,因为我不认为transaction 是一个开始的指针,但对于s...
我对 Rust 语言非常陌生,所以请耐心等待。 我正在 Rust 中实现一个图形数据结构。对于图中的每个节点(还有边 - 从这个片段中省略),我有一个结构......
以下代码是我根据《Rust 编程语言》书第 13 章修改的 #[导出(调试)] 枚举衬衫颜色 { 红色的, 蓝色的, 耶罗, } 结构库存{ 衬衫:Vec<
我有一个返回类型的异步 fn,并且想要在调用另一个异步函数的该类型上实现 Drop。目前尚不清楚如何执行此操作,并且我在文档中找不到任何内容。最
我试图声明一个异步函数,它接受另一个异步函数作为参数,该函数必须通过不可变引用接受参数 只是为了说明我想给他什么......
如何修复错误:仍需要 5849 字节的正文8 MiB | 401.00 KiB/秒
(https://i.sstatic.net/gsKmQNIz.png) 在 Github 上克隆项目时,我遇到了这个错误。我可以采取哪些步骤来修复此错误? (https://i.sstatic.net/AojXym8J.png) 首先,这个错误
我正在使用 Tauri 构建 GUI。在我的后端我定义了两个命令: #[tauri::命令] fn 功能测试(消息:字符串){ println!("已收到:{}", msg); } #[tauri::命令]
我正在编写一段代码,用于检查 stdin 是否代表一个目录,如果是,则对其执行一些操作 目前,我有可在 Unix 系统上运行的代码: 让 fd = stdin().as_fd().
假设我想创建一个 MyError 类型,可以在其中放入任意错误 - 我想在特征方法的结果中返回我的错误类型,以便从实现细节中抽象出来...