エラー型
複数の失敗原因を整理し、呼び出し側が適切に対応できるようにします。
#[derive(Debug)]
enum ConfigError{Missing,Invalid,OutOfRange}
fn parse_port(s:&str)->Result<u16,ConfigError>{
let n=s.parse::<u32>().map_err(|_|ConfigError::Invalid)?;
if n==0||n>u16::MAX as u32{return Err(ConfigError::OutOfRange);}
Ok(n as u16)
}
エラーは利用者向けメッセージと内部診断情報を分けます。thiserrorやanyhowも選択肢ですが、このRunnerでは外部crateを使えません。
演習:ポート番号
コード提出フォーム
RUST安全なサーバー側採点連携が未接続のため、現在は提出できません。
採点基盤準備中
公開テストケース
読み込み中…