idea免费社区版本不能代表他们的最强实力么?
use std::convert::{TryFrom, TryInto};
#[derive(Debug, PartialEq)]
pub struct Color {
pub red: u8,
pub green: u8,
pub blue: u8,
}
// We will use this error type for these `TryFrom` conversions.
#[derive(Debug, PartialEq)]
pub enum IntoColorError {
// Incorrect length of slice
BadLen,
// Integer conversion error
IntConversion,
}
// Tuple implementation
impl TryFrom<(i16, i16, i16)> for Color {
type Error = IntoColorError;
fn try_from(tuple: (i16, i16, i16)) -> Result<Self, Self::Error> {
match tuple {
(r, g, b) if r < 0 || r > 255 || g < 0 || g > 255 || b < 0 || b > 255 => {
Err(IntoColorError::IntConversion)
},
(r, g, b) => {
Ok(Color {
red: r as u8,
green: g as u8,
blue: b as u8,
})
}
}
}
}
// Array implementation
impl TryFrom<[i16; 3]> for Color {
type Error = IntoColorError;
fn try_from(arr: [i16; 3]) -> Result<Self, Self::Error> {
arr[..].try_into()
}
}
// Slice implementation
impl TryFrom<&[i16]> for Color {
type Error = IntoColorError;
fn try_from(slice: &[i16]) -> Result<Self, Self::Error> {
if slice.len() != 3 {
return Err(IntoColorError::BadLen);
}
(slice[0], slice[1], slice[2]).try_into()
}
}
arr[..].try_into()
的try_into vscode能推断出这个选项
1
共 5 条评论, 1 页
评论区
写评论idea clion 是支持ra的, 可以去设置
ra 毕竟有官方加持啊。
打开一个项目 半小时在初始化 醉了
所以clion不是用的ra? 一直以为是一样的...
现在不是本来就是ra功能比较多嘛