Rust ์ธ์ด๋ฅผ ๋งค์ฃผ ๊ณต๋ถ๋ฅผ ํ๊ณ ์๋๋ฐ์, Rust์ ๋ค์ํ ๋งค๋ ฅ์ ์ธ ๊ธฐ๋ฅ์ค์ ์ ๋ enum์ด ์ฐธ ๋ง์์ ๋ญ๋๋ค.
pub enum Response<T, E> {
Ok(T),
Error(E)
}
Result<T, E>
๋ผ๋ ์ด๊ฑฐํ์ Ok(T)
์ Error(E)
๋ผ๋ ์ด๊ฑฐ ์ ํ์ ๊ฐ์ง ์ ์๋๋ฐ์, ์ ๋ฐํ๊ฒ์ Ok
์ผ ๋ T ํ์ ๊ฐ์ ๊ฐ์ง ์ ์๊ณ , Error
์ผ ๋ E ํ์ ๊ฐ์ ๊ฐ์ง ์ ์๋ค๋ ๊ฒ์
๋๋ค.
fn main() {
let ok_value: Response<i32, &str> = Response::Ok(312);
let err_value: Response<i32, &str> = Response::Error("Error!");
print(&ok_value);
print(&err_value);
}
fn print(value: &Response<i32, &str>) {
match value {
Response::Ok(v) => println!("{}", v),
Response::Error(message) => println!("{}", message),
}
}
์ด๊ฒ ์ ์๊ฒ๋ ์๋นํ ๋งค๋ ฅ์ ์ผ๋ก ๋ณด์ฌ์ C#์๋ ๋์ ์ด ๋์์ ํ๋ ๋ฐ๋จ์ ๋๋ค.