我正在尝试为Rust中的STM32F1xx制作"Blinky".我知道它有libs,但是我想创建自己的"lib"用于学习目的.
我可以通过C中的地址访问STM32的"寄存器":
*(uint32_t*)(0x40021000 + 0x018) |= 0x10;
*(uint32_t*)(0x40011000 + 0x004) |= 0x33;
*(uint32_t*)(0x40011000 + 0x004) &= ~0xCC;
*(uint32_t*)(0x40011000 + 0x10) |= 0x300;
while(1) {}
Run Code Online (Sandbox Code Playgroud)
这会将一些位写入RCC_APB2ENR寄存器以启用端口C的时钟,配置引脚并启用Discovery上的LED.
我需要在Rust中重写它,以制作consts,fns并开始编写漂亮的Rusty代码.在没有FFI调用C代码的情况下Rust是否可能?我能用asm!宏来实现吗?
Pandas DataFrame 是否有任何减少/折叠实现?例如,我想获得一个名为列数之和cost在数据帧df,使用类似lambda acc, x,这里x是一个数据帧一行。
我该怎么办?
PS 我知道 .sum(),但还有许多其他可能的\acc,x -> ...功能。
我以为我已经得到了一生'static,但现在我不确定了。
我正在尝试了解如何与 Tokio 和 Futures 合作。我的应用程序正在运行,但结构很糟糕,所以我需要分解它。这是'static我关闭的要求,我不知道如何解决。
例如,在一个main函数中,我有一个句柄并且能够spawn对其循环进行 future 操作:
let mut core = tokio_core::reactor::Core::new().unwrap();
let handle = core.handle();
let future = {
ok(())
};
Run Code Online (Sandbox Code Playgroud)
它编译;现在我想移出一些逻辑:
struct Test;
impl Test {
fn test(&self, handle: tokio_core::reactor::Handle) {
let future = {
ok(())
};
handle.spawn(future);
}
}
Run Code Online (Sandbox Code Playgroud)
它也能编译。当我的结构变得更加复杂时:
struct Test<'a> {
api: &'a Arc<Api>,
}
impl<'a> Test<'a> {
fn new(api: &'a Arc<Api>) -> Self {
Test {
api: api,
}
}
fn test(&self, msg: &telegram_bot::types::Message, …Run Code Online (Sandbox Code Playgroud) 假设有4个组成部分:
我尽量做到最后两个操作是asyncronous,像放置在队列中积累的数据的地方,并开始收集等调查,同时事情处理数据和别的东西做IO与任何先前准备的数据。
问题是使用语言的什么功能?在《Clojure编程》一书中,有使用代理作为执行IO操作的组件的示例,但是期货不提供相同的“即发即弃”功能吗?还是代理仍然是原子或引用之类的身份,而根本不是演员?