#resources #lock #stdin #pass #locked #stdin-lock #with-lock

locked-resource

允许你传递一个锁(StdinLock)及其资源(Stdin)

2 个版本

0.1.1 2019 年 5 月 31 日
0.1.0 2019 年 5 月 31 日

#8#locked

MIT/Apache

7KB
68

允许你传递一个锁及其资源。

use locked_resource::{LockedResource, WithLock};
use std::io::{stdin, BufRead, Stdin, StdinLock};

fn use_stdin<'l>(
    mut locked_stdin: LockedResource<Stdin, StdinLock<'l>>,
) -> LockedResource<Stdin, StdinLock<'l>> {
    let mut line = String::new();
    locked_stdin.read_line(&mut line).unwrap();
    locked_stdin
}

fn main() {
    let mut locked_stdin = stdin().with_lock();

    let mut line = String::new();
    locked_stdin.read_line(&mut line).unwrap();
    let locked_resource = use_stdin(locked_stdin);

    let mut line = String::new();
    locked_stdin.read_line(&mut line).unwrap();
}

待办事项

  • 实现 Stdout 支持
  • 实现 Stderr 支持
  • 等等..

无运行时依赖