28 lines
1.0 KiB
Rust
28 lines
1.0 KiB
Rust
use super::integer::Time;
|
|
|
|
#[binrw::binrw]
|
|
#[brw(little)]
|
|
pub struct TimedPhysicsInstruction{
|
|
pub time:Time,
|
|
pub instruction:super::physics::PhysicsInputInstruction,
|
|
}
|
|
|
|
impl TryInto<strafesnet_common::instruction::TimedInstruction<strafesnet_common::physics::Instruction>> for TimedPhysicsInstruction{
|
|
type Error=super::integer::RatioError;
|
|
fn try_into(self)->Result<strafesnet_common::instruction::TimedInstruction<strafesnet_common::physics::Instruction>,Self::Error>{
|
|
Ok(strafesnet_common::instruction::TimedInstruction{
|
|
time:strafesnet_common::integer::Time::raw(self.time),
|
|
instruction:self.instruction.try_into()?,
|
|
})
|
|
}
|
|
}
|
|
impl TryFrom<strafesnet_common::instruction::TimedInstruction<strafesnet_common::physics::Instruction>> for TimedPhysicsInstruction{
|
|
type Error=super::physics::PhysicsInputInstructionError;
|
|
fn try_from(value:strafesnet_common::instruction::TimedInstruction<strafesnet_common::physics::Instruction>)->Result<Self,Self::Error>{
|
|
Ok(Self{
|
|
time:value.time.get(),
|
|
instruction:value.instruction.try_into()?,
|
|
})
|
|
}
|
|
}
|