Thanks to visit codestin.com
Credit goes to lib.rs

10 releases

0.2.1 Apr 3, 2020
0.2.0 Apr 1, 2020
0.1.9 Mar 21, 2021
0.1.8 Nov 14, 2020
0.1.5 Jun 24, 2019

#153 in #stdout

Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App

140,794 downloads per month
Used in 6 crates (2 directly)

MIT/Apache

22KB
346 lines

Macros to easily derive Readable and make stdout faster.

proconio_derive provides two procedural macros (attributes): derive_readable and fastout.

Examples for #[derive_readable]

use proconio::input;
use proconio_derive::derive_readable;

// Unit struct can derive readable.  This generates a no-op for the reading.  Not ignoring
// the read value, but simply skip reading process.  You cannot use it to discard the input.
#[derive_readable]
#[derive(PartialEq, Debug)]
struct Weight;

#[derive_readable]
#[derive(PartialEq, Debug)]
struct Cost(i32);

#[derive_readable]
#[derive(Debug)]
struct Edge {
    from: usize,
    to: proconio::marker::Usize1, // The real Edge::to has type usize.
    weight: Weight,
    cost: Cost,
}

fn main() {
    input! {
        edge: Edge,
    }

    // if you enter "12 32 35" to the stdin, the values are as follows.
    assert_eq!(edge.from, 12);
    assert_eq!(edge.to, 31);
    assert_eq!(edge.weight, Weight);
    assert_eq!(edge.cost, Cost(35));
}

Examples for #[fastout]

use proconio_derive::fastout;

#[fastout]
fn main() {
    print!("{}{}, ", 'h', "ello"); // "hello"       (no newline)
    println!("{}!", "world");      // "world!\n"
    println!("{}", 123456789);     // "123456789\n"
}

proconio-derive

crates.io docs.rs

This is procedural macros for proconio.

Dependencies

~1.5MB
~39K SLoC