What does impl mean?
, impl X " X". , , , UpToImpl , Box<Generator>. , . , , , .
Rust C++?
, up_to, , , Generator:
use std::{
ops::{Generator, GeneratorState},
pin::Pin,
};
pub struct UpToImpl {
limit: u64,
x: u64,
}
impl Generator for UpToImpl {
type Yield = u64;
type Return = u64;
fn resume(mut self: Pin<&mut Self>) -> GeneratorState<u64, u64> {
let x = self.x;
if x < self.limit {
self.x += 1;
GeneratorState::Yielded(x)
} else {
GeneratorState::Complete(self.limit)
}
}
}
pub fn up_to(limit: u64) -> UpToImpl {
UpToImpl { x: 0, limit }
}
fn main() {
let mut v = Box::pin(up_to(3));
println!("{:?}", v.as_mut().resume());
println!("{:?}", v.as_mut().resume());
println!("{:?}", v.as_mut().resume());
println!("{:?}", v.as_mut().resume());
}
, , , Rust , , yield, , , UpToImpl, . (, , Fn.)
impl Generator . UpToImpl , , . , :
let x: UpToImpl = up_to(10);
, UpToImpl - .
up_to , , impl Generator, , impl trait , . , , , , .
: