这篇文章上次修改于 902 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
全局变量初始化:
lazy_static::lazy_static! {
static ref VIDEO: Arc<Mutex<Option<Video>>> = Default::default();
}
赋值:
*VIDEO.lock().unwrap() = Some(site);
修改:
VIDEO.lock().unwrap().as_mut().map(|v| {
let ok = v.start_streaming(
(FRAME_WIDTH, FRAME_HEIGHT),
COLOR_SPACE::Rgb32,
None,
);
});
如果不需要在线程间传递,且仅仅是读取,可以用类似 if let Some(ref chunk) = channel.header_chunk
的语法:
pub struct Channel {
pub name: String,
header_chunk: Option<Chunk>,
listeners: Vec<Sender<Chunk>>,
}
if let Some(ref chunk) = channel.header_chunk {
sender
.start_send(chunk.clone())
.expect("Queuing existing header chunk");
}
没有评论