AZ
Size: a a a
AZ
S
pub struct SomeScheduler {
pub some_service: Arc<Box<SomeService>>
}
impl SomeScheduler {
pub async fn init(mut self) {
let mut scheduler = Scheduler::new();
let service = self.some_service.clone();
scheduler.every(1.day()).at("3:20 pm").run(move || {
&rr.run();
});
}erk = "0.3.3")
Само собой компилятор ругается ve occurs because value has type bot_service::BotService, which does not implement the Copy traitAN
MB
Z
&[u16] slice с nil в конце, где каждый элемент не больше 2 байт?MB
Z
OsStr::new( value ).encode_wide().chain( once( 0 ) ).collect()
Э
OsStr::new( value ).encode_wide().chain( once( 0 ) ).collect()
Z
Z
core::mem::size_of_val(slice)?Э
core::mem::size_of_val(slice)?Z
Z
A
Э
struct WinapiBytes(Vec<u16>);
impl WinapiBytes {
const fn new() -> Self { Self(Vec::new()) }
fn from_osstr(s: &OsStr) -> Self { /* */ }
fn cstr_like(&self) -> &[u16] {
&self.0[..]
}
fn str_like(&self) -> &[u16] {
// This struct always has `nil` at the end.
&self.0[..self.len() - 1]
}
fn push_str(&mut self, s: &OsStr) {
self.0.pop();
self.0.extend(s.encode_wide());
self.push_nil();
}
fn push_nil(&mut self) {
self.0.push(0);
}
}
Э
push_str сделатьimpl Extend<u16> for WinapiBytes {
fn extend<T>(&mut self, iter: T)
where
T: IntoIterator<Item = u16>
{
self.0.pop();
self.0.extend(iter);
self.push_nil();
}
}
// …
fn push_str(&mut self, s: &OsStr) { self.extend(s.encode_wide()); }Э
fn size_with_nil(&self) -> usize { self.0.len() * mem::size_of::<u16>() }
fn size_without_nil(&self) -> usize { (self.0.len() - 1) * mem::size_of::<u16>() }Z
R
CStr и вызывать функции с суффиксом A (CreateFileA).