blob: 46c53e9ce7aed684066efc8143aaec338376d91b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
#[lang = "sized"]
pub trait Sized {}
pub enum Option<T> {
None,
Some(T),
}
pub enum Result<T, E> {
Ok(T),
Err(E),
}
pub trait TryFrom<T> {
type Error;
fn try_from(value: T) -> Result<Self, Self::Error>;
}
pub trait From<T> {
fn from(_: T) -> Self;
}
impl<T> From<T> for T {
fn from(t: T) -> T {
t
}
}
impl<T, U> TryFrom<U> for T
where
T: From<U>,
{
type Error = !;
fn try_from(value: U) -> Result<Self, Self::Error> {
Result::Ok(T::from(value))
}
}
pub fn test(n: usize) {
let _a = <usize>::try_from(n);
}
|