Skip to content

Instantly share code, notes, and snippets.

@maciektr
Created September 15, 2023 21:51
Show Gist options
  • Save maciektr/6b6c18a358b5792912bc0d0261ef3ac2 to your computer and use it in GitHub Desktop.
Save maciektr/6b6c18a358b5792912bc0d0261ef3ac2 to your computer and use it in GitHub Desktop.
use anyhow::Result;
use clap::{Parser, Subcommand};
#[derive(Parser, Clone, Debug)]
struct Args {
/// Subcommand and its arguments.
#[command(subcommand)]
pub command: Command,
}
#[derive(Subcommand, Clone, Debug)]
pub enum Command {
HangOnTcp(HangOnTcpArgs),
}
#[derive(Parser, Clone, Debug)]
pub struct HangOnTcpArgs {
#[arg(short, long)]
address: String,
}
fn main() {
let args: Args = Args::parse();
let result = match args.command {
Command::HangOnTcp(args) => hang_on_tcp(args),
};
result.unwrap();
}
fn hang_on_tcp(args: HangOnTcpArgs) -> Result<()> {
use std::io::Read;
use std::net::TcpStream;
let address: &str = args.address.as_ref();
let mut socket = TcpStream::connect(address).unwrap();
let _ = socket.read(&mut [0; 10]);
panic!("that read should never return");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment