summaryrefslogtreecommitdiffstats
path: root/src/tools/cargo/credential/cargo-credential/examples/stdout-redirected.rs
blob: 75a2d16d1eba431264fbf79aa4ab484930a1c8f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//! Provider used for testing redirection of stdout.

use cargo_credential::{Action, Credential, CredentialResponse, Error, RegistryInfo};

struct MyCredential;

impl Credential for MyCredential {
    fn perform(
        &self,
        _registry: &RegistryInfo<'_>,
        _action: &Action<'_>,
        _args: &[&str],
    ) -> Result<CredentialResponse, Error> {
        // Informational messages should be sent on stderr.
        eprintln!("message on stderr should be sent the the parent process");

        // Reading from stdin and writing to stdout will go to the attached console (tty).
        println!("message from test credential provider");
        Err(Error::OperationNotSupported)
    }
}

fn main() {
    cargo_credential::main(MyCredential);
}