小编Yur*_*rik的帖子

使用 Rust 空类型作为通用绑定

如何将 Rust 泛型类型限制为空类型?我需要创建一个具有可选值的类型,这样如果泛型类型是(),它就不会使用任何内存。这是一个简单的例子 -Data可以是 a i32, ()(4 字节),也可以是i32, i32(8 字节)。add()两种情况都有一个。我收到此错误(这是有道理的,但不确定如何避免它)。我需要处理所有有效的数字类型。

error[E0119]: conflicting implementations of trait `std::ops::Add` for type `Data<(), ()>`
...
note: upstream crates may add a new impl of trait `num_traits::Num` for type `()` in future versions
Run Code Online (Sandbox Code Playgroud)
error[E0119]: conflicting implementations of trait `std::ops::Add` for type `Data<(), ()>`
...
note: upstream crates may add a new impl of trait `num_traits::Num` for type `()` in future versions
Run Code Online (Sandbox Code Playgroud)

generics rust

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

使用 sqlx 和 rust 将结构插入 sqlite 数据库

我有一个关于将数据结构插入数据库的问题,但我似乎找不到任何相关文档。

我有一个数据结构

#[derive(FromRow, Getters, Default, Serialize, Deserialize, Debug)]
#[serde(crate = "rocket::serde")]
#[getset(get = "pub")]
pub struct RefreshKeys {
    id: i64,
    customer_id: i64,
    key: String,
    enabled: bool,
}
Run Code Online (Sandbox Code Playgroud)

我想将其插入到具有相同字段的数据库中,称为refresh_keys.

rocket_db_pools::sqlx::query_as::<_, RefreshKeys>(
  "INSERT INTO refresh_keys (id, customer_id, key, enabled)
   VALUES (?1, ?2, ?3, ?4)"
)
.fetch_one(&mut *db)
.await?
Run Code Online (Sandbox Code Playgroud)

遗憾的是,这似乎不起作用,我收到以下错误:

SqliteError { code: 1299, message: "NOT NULL constraint failed: refresh_keys.customer_id" }
Run Code Online (Sandbox Code Playgroud)

我已经尝试了几个小时来查找相关文档,但我什么也没找到。

提前致谢!

sqlite rust rust-rocket rust-sqlx

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

在VS2008中创建64位CLR C++项目

我正在创建一个包含32位和64位版本的本机库的包装器.我有一个相当复杂的C++/CLR项目,其中包含来自本机库的许多头文件.我让它在x32上工作正常,但现在我不知道如何提供替代的x64构建.

有人可以概述创建此类项目的步骤吗?

  • 各种定义依赖于_WIN32/_WIN64,所以必须是多个项目?
  • 两个x32/x64本机库都具有相同的文件名.目前lib ref已完成#pragma comment (lib, "xxxxxx.lib").该如何改变?

最后 - VS2008只列出了Win32平台,而不是Win64(我确实安装了x64 VS2008组件).

谢谢!

64-bit managed-c++ c++-cli

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

CLI/C++将"this"指针转换为整数

我试图在CLI/C++ prog中跟踪托管对象的创建/处置:

::System::Diagnostics::Trace::WriteLine(String::Format(
    "Created {0} #{1:X8}", 
    this->GetType()->Name,
    ((UInt64)this).ToString()));
Run Code Online (Sandbox Code Playgroud)

哪个失败了

error C2440: 'type cast' : cannot convert from 'MyType ^const ' to 'unsigned __int64'

有没有办法以这种方式跟踪唯一对象ID?谢谢!

c++-cli

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

HAVING的成本但不在.NET中的方法中抛出异常

这个问题不是关于在.NET中抛出异常的成本.在一段时间的实验中,我看到方法性能发生了重大变化,如果它在一个执行路径中的某处包含一个throw语句,而实际上并没有使用它.JIT是否以某种方式包装任何可能在某些额外代码中抛出异常的方法?

.net performance exception

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

而在JavaScript/node.js中循环使用A + promises

我需要继续调用远程API,直到我得到我需要的响应,并且我想在node.js中使用官方A + promises.同步psudo代码:

params = { remote api call params }
while (true) {
    result = callRemoteApi(params)
    if isGood(result) {
        onSuccess(result)
        break
    }
    params = modify(params)
}
Run Code Online (Sandbox Code Playgroud)

我正在使用request-promise lib来处理请求,结果可能是这样的:

new Promise(function (resolve, reject) {
    var task = request({params})
        .then(function (result) {
            if (isGood(result)) {
                resolve(result);
            } else {
                task = request({new params}).then(this_function);
            }
        });
Run Code Online (Sandbox Code Playgroud)

PS这与/sf/answers/1206715541/非常相似,但我想要一个非基于q的实现.

javascript node.js promise es6-promise

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

在 Vega Graphs 中重命名图例值,并保持颜色一致

我的数据包含 3 列 - 日期、类别和值。类别是我想扩展的短字符串代码,例如“r”=>“常规”、“n”=>“禁止”等,并显示正确的图例字符串。有没有办法进行映射{"r":"regular", "n": "prohibited"}- 未列出的将按原样显示?

另外,由于我有很多相似的图表,我希望颜色保持一致。排序类别没有帮助,因为并非所有图形都包含所有类别。如何设置映射{"r":"blue", "n": "#332211"}我可以使用映射的类别名称,如“常规”。所有未映射的值都应该来自其他一些来源,如 Categories20 等。

vega

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

计算 Graphite 中 groupByNode() 结果的百分比

我有两组石墨系列,都是这种格式。第二组是相同的,只是它具有“xy”前缀而不是“ab”。

 a.b.ccc.a1.hr
 a.b.ccc.a2.hr
 a.b.ccc.a3.hr
 a.b.ddd.a1.hr
 a.b.ddd.a4.hr
Run Code Online (Sandbox Code Playgroud)

要按我使用的第三个节点进行分组groupByNode(a.b.*.*.hr,2,"sumSeries"),这会得到两个系列: cccddd。我想将第一组中的系列除以第二组中的相应系列ccc。如何在map/reduce函数中ddd使用结果?groupByNode

graphite grafana

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

在github子模块中使用ssh vs https

我想建立一个带有子模块的公共GitHub存储库。GitHub提供了两种连接方式- https:...git@...协议。对于从事该项目的团队而言,git@...使用起来容易得多,因为我们所有人都使用正确的ssh证书。但是对于不是团队成员的临时用户,则https:...是唯一的选择。git子模块需要完整的URL。

我们如何设置存储库子模块,以便开发人员和临时贡献者都可以平等地使用该系统?谢谢!

git github git-submodules

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

在C++中将(可能的)虚方法作为函数指针传递

我需要将此代码转换为Visual Studio 2008的函数指针调用GetValue().func可以是虚拟的,但并非总是如此,并且GetObject()在不同的上下文中将返回不同的类型.

...
res = GetObject()->GetValue(x, y);
...
Run Code Online (Sandbox Code Playgroud)

调用函数将传入GetObject()->GetValue (指向func的指针+应该调用该函数的对象实例),并且调用函数将提供参数:

void Foo(  (int T::func*)(int, int)  )
{
    ...
    res = func(x, y);
    ...
}

void Bar()
{
    Foo( & GetObject()->GetValue );
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

c++ function-pointers

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

如何使用skip_serializing_if跳过布尔字段的serde序列化

如果值为 ,我想跳过字段序列化false

在 JSON 中,这将序列化为Foo或。{bar: true}{}

#[derive(Serialize)]
pub struct Foo {
    // This does not compile - bool::is_false does not exist
    #[serde(skip_serializing_if = "bool::is_false")]
    pub bar: bool,
}
Run Code Online (Sandbox Code Playgroud)

rust serde

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