小编Dav*_*son的帖子

如何包含另一个 .zig 文件中的一个 .zig 文件

只是探索 Zig...我有一个 .zig 文件,其中包含一堆 comptime 函数和常量,我想在其他 .zig 程序中使用它们。相当于#include "my.h"C中的。

zig

12
推荐指数
2
解决办法
3536
查看次数

当我不关心某些参数时,Rust 可以在函数类型之间进行转换吗?

我有 3 种函数类型:

type ThreadedFunction = fn(&mut Thread, Object) -> FunctionResult;
type UniversalFunction = fn(&mut Thread, Unused) -> FunctionResult;
type Function = fn(&mut Thread, &Method) -> FunctionResult;
static_assertions::assert_eq_size!(primitives::Unused, &Method);
static_assertions::assert_eq_size!(primitives::Unused, Object);
Run Code Online (Sandbox Code Playgroud)

通用函数忽略第二个参数,所以我希望能够在其他两个上下文中使用它们。的大小ObjectUnused&Method相同。

我希望能够执行以下操作:

pub fn unused(thread: &mut Thread, _: Unused) -> FunctionResult {
    NormalReturn
}

pub fn somewhere() -> ThreadedFunction {
    unused as ThreadedFunction
}
Run Code Online (Sandbox Code Playgroud)

这是不安全的:

error[E0605]: non-primitive cast: `for<'r> fn(&'r mut interpreter::Thread, interpreter::primitives::Unused) -> interpreter::FunctionResult {unused}` as `for<'r> fn(&'r mut interpreter::Thread, object::Object) -> …
Run Code Online (Sandbox Code Playgroud)

rust

1
推荐指数
1
解决办法
65
查看次数

标签 统计

rust ×1

zig ×1