The From
trait is one of the most commonly used trait in the Rust programming language, it is used for converting a value from one type to another.
After you implement the From
trait for a type, the Into
trait is implemented for you automatically. This means that you can then use into()
on the source type to convert this type to the target type, and of course, you can use From::from()
to convert from the source type to the target type.
Here's an example on a use case for the From
trait:
fn main() {
let f = Fahrenheit(32.0);
let c: Celsius = f.into();
println!("{}°F is {}°C", f.0, c.0);
}
This code works because the Fahrenheit
struct implements the From
trait for the Celsius
struct. This allows us to convert a Fahrenheit
instance to a Celsius
instance using the into()
method. The explicit type annotation : Celsius
tells the compiler to turn it "into" a Celsius
instance.
Your task is to implement the From
trait for the following struct types:
struct Minutes(u32);
struct Hours(u32);
struct Days(u32);
You need to implement the From
trait for the following conversions:
Minutes
to Hours
Hours
to Days
Minutes
to Days
Days
to Hours
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { // Implement the minute to hour conversion here Hours( minutes.0 / 60 ) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Days( hours.0 / 24 ) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { <Minutes as Into<Hours>>::into(minutes).into() }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Hours( days.0 * 24 ) }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { // Implement the minute to hour conversion here Hours( minutes.0 / 60 ) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Days( hours.0 / 24 ) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { <Minutes as Into<Hours>>::into(minutes).into() }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Hours( days.0 * 24 ) }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { // Implement the minute to hour conversion here Hours( minutes.0 / 60 ) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Days( hours.0 / 24 ) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { let hours: Hours = minutes.into(); let days: Days = hours.into(); days }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Hours( days.0 * 24 ) }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { // Implement the minute to hour conversion here Hours(minutes.0 / 60) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Days(hours.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { Days(minutes.0 / 60 / 24) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Hours(days.0 * 24) }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);// Implement From<Minutes> for Hoursimpl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { Hours(minutes.0 / 60) // Convert minutes to hours }}// Implement From<Hours> for Daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Days(hours.0 / 24) // Convert hours to days }}// Implement From<Minutes> for Daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { Days(minutes.0 / 60 / 24) // Convert minutes to days }}// Implement From<Days> for Hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Hours(days.0 * 24) // Convert days to hours }}// Example usagepub fn main() { // Convert Minutes to Hours let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1); // Convert Hours to Days let hours = Hours(48); let days: Days = hours.into(); assert_eq!(days.0, 2); // Convert Minutes to Days let minutes = Minutes(2880); let days: Days = minutes.into(); assert_eq!(days.0, 2); // Convert Days to Hours let days = Days(3); let hours: Hours = days.into(); assert_eq!(hours.0, 72);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { Hours(minutes.0 / 60) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Days(hours.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { Days(minutes.0 / (24*60)) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Hours(days.0 * (24)) }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { Hours(minutes.0 / 60) // Implement the minute to hour conversion here }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Days(hours.0 / 24) // Implement the minute to hour conversion here }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { Days(minutes.0 / (24 * 60)) // Implement the minute to hour conversion here }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Hours(days.0 * 24) // Implement the minute to hour conversion here }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { // Implement the minute to hour conversion here Hours(minutes.0 / 60) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Days(hours.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { Days(minutes.0 / 60 / 24) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Hours(days.0 * 24) }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { // Implement the minute to hour conversion here Hours(minutes.0 / 60) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { // Implement the minute to hour conversion here Days(hours.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { // Implement the minute to hour conversion here Days(minutes.0 / (24 * 60)) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { // Implement the minute to hour conversion here Hours(days.0 * 24) }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { // Implement the minute to hour conversion here Hours(minutes.0 / 60 ) }}// TODO: implement from hours to daysimpl From<Hours> for Days{ fn from(hours: Hours) -> Days{ Days(hours.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days{ fn from(minutes:Minutes)-> Days{ Days(minutes.0 / 1440) }}// TODO: implement from days to hoursimpl From<Days> for Hours{ fn from(days: Days)-> Hours{ Hours(days.0 * 24) }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { Self(minutes.0 / 60) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Self(hours.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { Self(minutes.0 / 60 / 24) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Self(days.0 * 24) }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Self { // Implement the minute to hour conversion here Self(minutes.0 / 60) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Self { Self(hours.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Self { Self(minutes.0 / 60 / 24) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Self { Self(days.0 * 24) }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { // Implement the minute to hour conversion here Hours((minutes.0 as f32 / 60.) as i32) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { // Implement the minute to hour conversion here Days((hours.0 as f32 / 24.) as i32) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { Days((minutes.0 as f32 / 60. / 24.) as i32) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Hours(days.0*24. as i32) }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { Hours(minutes.0 / 60) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Days(hours.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { Days(minutes.0 / (60*24)) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Hours(days.0 * 24) }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { Hours(minutes.0 / 60) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Days(hours.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { Days(minutes.0 / (60*24)) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Hours(days.0 * 24) }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { // Implement the minute to hour conversion here Hours(minutes.0 / 60) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Days(hours.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { Days::from(Hours::from(minutes)) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Hours(days.0 * 24) }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { // Implement the minute to hour conversion here Hours(minutes.0 / 60) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(value: Hours) -> Self { Days(value.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(value: Minutes) -> Self { Days(value.0 / 60 / 24) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(value: Days) -> Self { Hours(value.0 * 24) }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { // Implement the minute to hour conversion here Hours((minutes.0 / 60) as i32) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(value: Hours) -> Self { Days((value.0 / 24) as i32) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(value: Minutes) -> Self { Days((value.0 / 60 / 24) as i32) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(value: Days) -> Self { Hours((value.0 * 24) as i32) }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { Hours ( minutes.0 / 60 ) // Implement the minute to hour conversion here }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Days( hours.0 / 24 ) }}impl From<Minutes> for Days { fn from(min: Minutes) -> Days { Days( min.0 / (60 * 24) ) }}// TODO: implement from minutes to days// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(d: Days) -> Hours { Hours(d.0 * 24) }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { Hours(minutes.0 / 60) }}impl From<Hours> for Days { fn from(hours: Hours) -> Days { Days(hours.0 / 24) }}impl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { Days(minutes.0 / (60 * 24)) }}impl From<Days> for Hours { fn from(days: Days) -> Hours { Hours(days.0 * 24) }}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { // Implement the minute to hour conversion here let result = minutes.0 / 60; Hours(result) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { let result = hours.0 / 24; Days(result) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { let result = minutes.0 / 1440; Days(result) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { let result = days.0 * 24; Hours(result) }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { Hours(minutes.0 / 60) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Days(hours.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { Hours::from(minutes).into() }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Hours(days.0 * 24) }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { Hours(minutes.0 / 60) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Days(hours.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { Hours::from(minutes).into() }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Hours(days.0 * 24) }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { // Implement the minute to hour conversion here Hours(minutes.0 / 60) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { // Implement the minute to hour conversion here Days(hours.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { // Implement the minute to hour conversion here Days(minutes.0 / 60 / 24) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { // Implement the minute to hour conversion here Hours(days.0 * 24) }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { // Implement the minute to hour conversion here Hours(minutes.0 / 60) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Days(hours.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { Days(minutes.0 / (60 * 24)) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days:Days) -> Hours { Hours(days.0 * 24) }}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { Hours(minutes.0 / 60) }}impl From<Hours> for Days { fn from(days: Hours) -> Days { Days(days.0 / 24) }}impl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { Days::from(Hours::from(minutes)) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Hours(days.0 * 24) }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { // Implement the minute to hour conversion here Hours(minutes.0 / 60) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Days(hours.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { Days(minutes.0 / (60 * 24)) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Hours(days.0 * 24) }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { // Implement the minute to hour conversion here return Hours(minutes.0 / 60); }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { return Days(hours.0 / 24); }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { return Days(minutes.0 / 60 / 24); }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { return Hours(days.0 * 24); }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { // Implement the minute to hour conversion here Hours(minutes.0 / 60) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Days(hours.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { let hours: Hours = minutes.into(); hours.into() }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Hours(days.0 * 24) }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { // Implement the minute to hour conversion here Hours(minutes.0 / 60) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Days(hours.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { Days(minutes.0 / 1440) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Hours(days.0 * 24) }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { Hours(minutes.0 / 60) }}impl From<Hours> for Days { fn from(hours: Hours) -> Days { Days(hours.0 / 24) }}impl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { let hours: Hours = minutes.into(); hours.into() }}impl From <Days> for Hours { fn from(days: Days) -> Hours { Hours(days.0 * 24) }}// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Self { Self(minutes.0 / 60) }}impl From<Hours> for Days { fn from(value: Hours) -> Self { Self(value.0 / 24) }}impl From<Minutes> for Days { fn from(minutes: Minutes) -> Self { let hour:Hours = minutes.into(); hour.into() }}impl From<Days> for Hours { fn from(value: Days) -> Self { Self(value.0 * 24) }}// TODO: implement from hours to days// TODO: implement from minutes to days// TODO: implement from days to hours// Example usagepub fn main() { let minutes = Minutes(60); let hours: Hours = minutes.into(); assert_eq!(hours.0, 1);}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { // Implement the minute to hour conversion here Hours(minutes.0 / 60) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Days(hours.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { Days(minutes.0 / 60 / 24) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Hours(days.0 * 24) }}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { Hours(minutes.0 / 60) }}impl From<Hours> for Days { fn from(hours: Hours) -> Days { Days(hours.0 / 24) }}impl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { let hours: Hours = minutes.into(); return hours.into() }}impl From<Days> for Hours { fn from(days: Days) -> Hours { Hours(days.0 * 24) }}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(v: Minutes) -> Hours { // Implement the minute to hour conversion here Hours(v.0 / 60) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(v: Hours) -> Days { Days(v.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(v: Minutes) -> Days { Days(v.0 / 60 / 24) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(v: Days) -> Hours { Hours(v.0 * 24) }}
pub struct Minutes(pub u32);pub struct Hours(pub u32);pub struct Days(pub u32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { // Implement the minute to hour conversion here Hours(minutes.0 / 60) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(h: Hours) -> Days { // Implement the minute to hour conversion here Days(h.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(m: Minutes) -> Days { // Implement the minute to hour conversion here let h: Hours = m.into(); Days(h.0 / 24) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(d: Days) -> Hours { // Implement the minute to hour conversion here Hours(d.0 * 24) }}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { Self(minutes.0 / 60) }}impl From<Hours> for Days { fn from(hours: Hours) -> Days { Self(hours.0 / 24) }}impl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { Self(minutes.0 / 60 / 24) }}impl From<Days> for Hours { fn from(days: Days) -> Hours { Self(days.0 * 24) }}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { // Implement the minute to hour conversion here Self(minutes.0 / 60) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Self(hours.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { Self(minutes.0 / 60 / 24) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Self(days.0 * 24) }}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { // Implement the minute to hour conversion here Hours(minutes.0 / 60) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { // Implement the minute to hour conversion here Days(hours.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { // Implement the minute to hour conversion here Days(minutes.0 / (24*60)) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { // Implement the minute to hour conversion here Hours(days.0 * 24) }}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Self { Self(minutes.0 / 60) }}impl From<Hours> for Days { fn from(hours: Hours) -> Self { Self(hours.0 / 24) }}impl From<Minutes> for Days { fn from(minutes: Minutes) -> Self { Self(minutes.0 / 1440) }}impl From<Days> for Hours { fn from(days: Days) -> Self { Self(days.0 * 24) }}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { // Implement the minute to hour conversion here Hours(minutes.0 / 60) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Days(hours.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { let hours: Hours = minutes.into(); hours.into() }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Hours(days.0 * 24) }}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { Hours(minutes.0 / 60) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Days(hours.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { Days(minutes.0 / (24 * 60)) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Hours(days.0 * 24) }}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { // Implement the minute to hour conversion here Hours((minutes.0 / 60) as i32) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { // Implement the minute to hour conversion here Days((hours.0 / 24) as i32) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { // Implement the minute to hour conversion here Into::<Days>::into(Into::<Hours>::into(minutes)) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { // Implement the minute to hour conversion here Hours(days.0 * 24) }}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { // Implement the minute to hour conversion here Hours((minutes.0 / 60) as i32) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { // Implement the minute to hour conversion here Days((hours.0 / 24) as i32) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { // Implement the minute to hour conversion here Into::<Days>::into(Into::<Hours>::into(minutes)) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { // Implement the minute to hour conversion here Hours(days.0 * 24) }}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { // Implement the minute to hour conversion here Hours( minutes.0 / 60 ) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Days( hours.0 / 24 ) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { Days( minutes.0 / 1440 ) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Hours(days.0 * 24) }}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { Hours((minutes.0)/60) }}// implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Days(hours.0/24) }}// implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { Days::from(Hours::from(minutes)) }}// implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Hours(days.0*24) }}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { // Implement the minute to hour conversion here Hours( minutes.0 /60) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours : Hours) -> Days { Days(hours.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from (minutes:Minutes) -> Days { Days::from(Hours::from(minutes)) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days : Days) -> Hours { Hours(days.0 *24) }}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);// Implement the minute to hour conversion hereimpl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { Hours((minutes.0)/60) }}// implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Days(hours.0/24) }}// implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { Days::from(Hours::from(minutes)) }}// implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Hours(days.0*24) }}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { Hours(minutes.0 / 60) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Days(hours.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { Days(minutes.0 / 1440) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Hours(days.0 * 24) }}
pub struct Minutes(pub i32);pub struct Hours(pub i32);pub struct Days(pub i32);impl From<Minutes> for Hours { fn from(minutes: Minutes) -> Hours { Hours(minutes.0 / 60) }}// TODO: implement from hours to daysimpl From<Hours> for Days { fn from(hours: Hours) -> Days { Days(hours.0 / 24) }}// TODO: implement from minutes to daysimpl From<Minutes> for Days { fn from(minutes: Minutes) -> Days { Days(minutes.0 / (60*24)) }}// TODO: implement from days to hoursimpl From<Days> for Hours { fn from(days: Days) -> Hours { Hours(days.0 * 24) }}