use std::ffi::OsStr;
use perforce_cli::P4Cli;
use perforce_cli::cmd::DiffOptionsBuilder;
use perforce_cli::cmd::diff::DisplayOptions;
use perforce_cli::spawn::{ParameterizedOutput, ParameterizedSpawn};
fn main() -> std::io::Result<()> {
let p4 = P4Cli::default();
let mut diff = p4
.diff()
.force(true)
.diff_options(DiffOptionsBuilder::unified(None).ignore_all_whitespace())
.limit(10);
let files = [OsStr::new("//depot/project/src/...")];
let output = diff.output_with(&files)?;
println!("{}", String::from_utf8_lossy(&output.stdout));
let mut list_changed = p4
.diff()
.force(true)
.display_options(DisplayOptions::UnopenedChanged);
let output = list_changed.output_with(&files)?;
println!("{}", String::from_utf8_lossy(&output.stdout));
let mut stream_diff = p4.diff().stream_spec_mode();
let mut child = stream_diff.spawn_with(Some("//streams/main@head"))?;
child.wait()?;
Ok(())
}