小编Ram*_*chi的帖子

宏扩展忽略标记“let”和任何后续内容

我想用宏定义一个变量ident并将其传递给派生宏,但出现错误:

错误

error: macro expansion ignores token `let` and any following
  --> database/src/models.rs:15:9
   |
15 |           let struct_name = stringify!($name);
   |           ^^^
...
50 | / model!(Person {
51 | |     name: String
52 | | });
   | |___- caused by the macro expansion here
   |
   = note: the usage of `model!` is likely invalid in item context
Run Code Online (Sandbox Code Playgroud)

代码

#[macro_export]
macro_rules! model {
    ( 
        $(#[$met: meta])*
        $name: ident { $($attr: ident : $typ: ty),* } 
    ) => { …
Run Code Online (Sandbox Code Playgroud)

macros rust

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

每个工作区成员的 Cargo 默认构建目标

我的工作区中有三个成员,我想将第一个成员与 一起编译musl,将其他两个成员与glibc. 我已经.cargo/config在项目根文件夹中创建了一个包含glibcconfigs 的文件。并.cargo/config在第一个成员文件夹中使用 configs 创建另一个文件musl。然而,我的第一个成员不是用musl. 我想在 alpine docker 容器中运行第一个成员,并且我正在使用第二个成员管理 docker 容器。怎么解决这个问题呢?

rust rust-cargo

6
推荐指数
0
解决办法
608
查看次数

REST API Base64映像imagecreatefromstring():数据不是可识别的格式

我正在为Android应用开发REST API。我想将base64图像另存为从应用程序发送的jpeg图像。我在laravel干预下为此编写了代码,并与邮递员进行了测试。没问题。但是,当从Android应用发送数据时,他们说我收到了500条错误消息Image intervention - Image source not readable

之后,我看到他们的JSON包含反斜杠和\ns。所以我试图用逃避他们stripslashesstripcslashesutf8_encodeutf8_decode但没有运气。

在我离开laravel干预并开始尝试使用imagecreatefromstring(gd)库之后。也没有运气的imagecreatefromstring(): Data is not in a recognized format消息。

这是我的尝试。

<?php
$json_string = '{"id_city":2,"image":"UklGRpQEAABXRUJQVlA4IIgEAAAQGgCdASpyAHMAPxF+tlMsKCUiqxLrCYAiCWkRQAHDhsYwTe19\nO7uR07OS4zITzPgo\/k\/\/0J5nUNHFl64IOAxaccVoK1IldwGQzh87cuQK\/Qv6ruo6EARQuRqZXsI1\nT1a85ouI4ZYwKmvLwgnuBPnn\/HRLOOjc4GJZ2WzZhF5g+XbewWBxrDfIJEcLkLPeY8ebLZwDLcjY\nSUrgaaxHaTX1+xU8bcKt59iNx\/IMFYnpdDJvKcJwFW9rBRy\/U5DjRlo5ZQU7dKgqlxXmdu5MGOh2\n43RLSSEWILgAANfz4R4KgwnZHkZWDlHwIRGB+lbtcZ4Y4mWUjleS5JFM3KmrDaJ419MI2ZJJU\/7k\n0Z63mAmpzXw31PSx+S+HPbgOz8MxBGrN09TRKMLuJ5i5LMOQQXjtsd0idgm7djBK+5MW0EnFMuCg\nZqmSJN3GJlBDoiuUSOsJsG4iwgt3mUGcqCnlcEvqKoGoXcELjZz1mr+WCRvFdllVtLtbO3la0aKi\neKrWUJGpztH59Gub9ENSLdVbif\/ZqknZP4suXBmfEj\/aBRk13G0p+PfzPFi\/UIYaKp2E8IgRyQUY\nF+ORSC+8+BY2hvmdRlfGxk25HvsYvNj9LCiCCmwf2LY80yDOCfAES8\/Zbkcf4Sk6cWdWvZ97N2Z1\nGxIG3u\/ozL3dojnfpkFySQr1mEfzZRlK0xXRQ2uEi3A0Av6pDw\/Agti0lqVNunnw94R8jLYOrQ7M\n7vSphyGicy+oyO0K7cbUQMVFW3j\/oRJK4s8WUiekb1enKbO96EDDTzQCCdn31wG2hU\/gR5RFYK7u\nxbdqWs1lLp\/JBwrua\/v2Vj3TDXFV9a\/JuzdOWSkEa7K8TqU2AlP67mM6HM132Ywl3ia631jGli+I\nIc8bKGr94ntR134G\/hLmQ1u2yq\/v1D8JwXgtQ2IRDsZvd1Y5EguLtdUSpl6z55GkWo69GAKGaNqH\njxW9hEAnx5aiF\/MPCsn34TVQ5saH2w0nOHKASzvCpVSYVbWiGJwxu7WQxTJA0rfRtULzLM+mymOK\neZtoiI0lYiireQpXTu8feigMY48QIU5Xc1G\/xqHSeyS5\/Z5VIFdkJCp\/JWbzoDCY\/tPdXrNwAzHX\nq8VX9qJ+4z1iiqtqx3MokhP8IX63qfOitGKrI8TfqC2SPr4BY1udsJjsVyFJDrxPtOia6JaDY5Ve\nTKcH+gs9oGAAjYdNDqOWy6FQbNJWVc\/VFTrzqXP2RJ32K9DepoTj8pAujbvjBzOxaKakp1934e9E\nyNjxeDmSPCWD31mo0351iPMqyyC1k02PO0nCttrpqsgUrdXS9v0kLtpx+Dt9n5y3tgGd\/dXnQhrW\nEcamg0R4XQy2kVbQVo\/eAi5G+VZOpo1c6mBAbU9rl1JPZY2HJmfZI5EZAXTH2Idi9zSzSjcP4cT+\nTWBl1kfl\/v+cAFGUJj9vx2dhvpq7hhFBzZ9NmBHCdE8qEEpz7JkHCgVIR6SSOZoEg9CMS\/NEGm9w\nUDgX+FGlCdz94\/3XNLPbe\/kEpZ\/5C+QJJVAV27kOIl9IC8If9YGAAA==\n"}';

$data = json_decode($json_string);

var_dump($data->image);
// After copy and pasted the var_dump result to the postman it works

$base64_decoded = base64_decode($data->image);

imagecreatefromstring($base64_decoded);
?>
Run Code Online (Sandbox Code Playgroud)

php base64 json gd

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

即使 Path.is_file true 也没有这样的文件或目录

我想删除运行测试用例时存在的数据库文件。所以我尝试了下面的代码,但失败了。你能告诉我这个错误的可能原因吗?

let db_path = Path::new("./tmp/data/data.mdb"); 

if db_path.is_file() {
    dbg!(db_path.exists()); // db_path.exists() = true
    dbg!(db_path.is_file()); // db_path.is_file() = true
    dbg!(std::fs::metadata(db_path));
    // Ok(
    // Metadata {
    //     file_type: FileType(
    //         FileType {
    //             mode: 33152,
    //         },
    //     ),
    //     is_dir: false,
    //     is_file: true,
    //     permissions: Permissions(
    //         FilePermissions {
    //             mode: 33152,
    //         },
    //     ),
    //     modified: Ok(
    //         SystemTime {
    //             tv_sec: 1647472466,
    //             tv_nsec: 574985772,
    //         },
    //     ),
    //     accessed: Ok(
    //         SystemTime {
    //             tv_sec: …
Run Code Online (Sandbox Code Playgroud)

rust

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

Glob 多种文件类型

我想找到具有多个扩展名的某些模式的文件。前任:-

some/path/**.{json,jsonc}
Run Code Online (Sandbox Code Playgroud)

但 Rust glob函数不适用于这些类型的模式。这是我的解决方法:-

some/path/**.{json,jsonc}
Run Code Online (Sandbox Code Playgroud)

glob rust

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

标签 统计

rust ×4

base64 ×1

gd ×1

glob ×1

json ×1

macros ×1

php ×1

rust-cargo ×1