小编Ska*_*ett的帖子

如何接受异步函数作为参数?

我想就像复制行为,并采取封闭/函数作为参数人体工程学map的作用:iterator.map(|x| ...)

我注意到一些库代码允许传入异步功能,但此方法不允许我传入参数:

pub fn spawn<F, T>(future: F) -> JoinHandle<T>
where
    F: Future<Output = T> + Send + 'static,
    T: Send + 'static,
Run Code Online (Sandbox Code Playgroud)
spawn(async { foo().await });
Run Code Online (Sandbox Code Playgroud)

我希望执行以下操作之一:

iterator.map(async |x| {...});
Run Code Online (Sandbox Code Playgroud)
async fn a(x: _) {}
iterator.map(a)
Run Code Online (Sandbox Code Playgroud)

closures asynchronous future rust async-await

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

如何从 Rust 的进程内部重定向 stderr?

我正在尝试重定向 Stderr从进程内部文件描述符,但似乎没有它的实现,而且我没有看到与dup2C/C++类似的任何内容的明确路线。

我试过了:

  • 直接实现Read( impl Read for Stderr),但需要覆盖整个代码库。
  • 消费文件描述符中的数据,然后进入File,然后进入ReadBuf

    trait FDReader {
        fn consume(&mut self);
    }
    
    impl FDReader for Stderr {
        fn consume(&mut self) {
            let f = std::fs::File::from_raw_fd(self.as_raw_fd());
            let mut extract = String::new();
            BufReader::new(f).read_to_string(&mut extract);
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

    consume之所以专注是因为我在测试代码时不必完全返回任何内容,尽管这不起作用。

  • 由于我在 Linux 系统上运行,并且我不打算发布代码,因此我还考虑了重定向/proc/self/fd/2 -> /dev/null,然后在我想写入时返回原始指针引用。对于这个范围来说,这是最重要的。

我也想过libc::dup2直接使用——虽然我厌倦了它。

pipe stderr rust

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

将列表存储到for循环Python的变量中

所以,这个问题听起来很复杂.我正在制作一个可以读取css文件的程序.如果你想看到它,这是完整的代码(http://pastebin.com/F09MScfp).所以我有一个变量.(让我们称之为元素)元素在for循环中以获取样式和名称.例如:

for elementName in contents.split('{'):
    element = elementName.split('}')

    print(element + '\n\n')
print(element)
Run Code Online (Sandbox Code Playgroud)

结果:

#For loop results
['#IDname', 'border:1px black solid;']
['.ClassName', 'border:3px blue solid']

#outside of loop (if global)
['IDname', 'border:1px black solid;']
Run Code Online (Sandbox Code Playgroud)

因此,我需要能够以自动方式将每个列表存储到变量中,比如调用Element1并获取#IDname.示例:print(Element2) 结果得到这个

['.ClassName', 'border:1px black solid']
Run Code Online (Sandbox Code Playgroud)

所以我想在这个循环中做一个循环就像这样.

i=0
for i in element:
    i = 1+i
    exec('globals()Element+ %i = element' %i)
    #sorry, I'm still really new to python :(
Run Code Online (Sandbox Code Playgroud)

python loops for-loop list

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

如何追加到现有的 TEXT 行 [sqlite3]

我想获取一个现有的TEXT字段/行并使用 sqlite3 附加到它。我发现这有点困难,我见过一些带有“upsert”的东西。

SQLite - UPSERT *不是* INSERT 或 REPLACE

我正在使用的特定数据库与任何其他表没有关系连接。

假设理想(伪代码)UPDATE Table APPEND row values(" text")

假设row包含"my "我希望它导致"my text"

理想情况下,我想在单个查询中执行此操作,但在那之前我只能选择和使用update set

sql database sqlite

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

如何从Rust中的内存缓冲区执行原始指令?

I'm attempting to make a buffer of memory executable, then execute it in Rust. I've gotten all the way until I need to cast the raw executable bytes as code/instructions. You can see a working example in C below.

Extra details:

  • Rust 1.34
  • Linux
  • CC 8.2.1
unsigned char code[] = {
0x55,                           //    push   %rbp
0x48, 0x89, 0xe5,               //    mov    %rsp,%rbp
0xb8, 0x37, 0x00, 0x00, 0x00,   //    mov    $0x37,%eax
0xc9,                           //    leaveq
0xc3                            //    retq
};


void reflect(const unsigned char …
Run Code Online (Sandbox Code Playgroud)

rust

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

标签 统计

rust ×3

async-await ×1

asynchronous ×1

closures ×1

database ×1

for-loop ×1

future ×1

list ×1

loops ×1

pipe ×1

python ×1

sql ×1

sqlite ×1

stderr ×1