add more expr casts
This commit is contained in:
parent
9128a84284
commit
358cdd10c8
|
@ -1788,6 +1788,84 @@ impl_cast_bit_op!(CastClockToBool, Clock, Bool);
|
|||
impl_cast_bit_op!(CastClockToUInt, Clock, UInt<1>, #[dyn] UInt);
|
||||
impl_cast_bit_op!(CastClockToSInt, Clock, SInt<1>, #[dyn] SInt);
|
||||
|
||||
impl ExprCastTo<AsyncReset> for AsyncReset {
|
||||
fn cast_to(src: Expr<Self>, _to_type: AsyncReset) -> Expr<AsyncReset> {
|
||||
src
|
||||
}
|
||||
}
|
||||
|
||||
impl ExprCastTo<SyncReset> for AsyncReset {
|
||||
fn cast_to(src: Expr<Self>, to_type: SyncReset) -> Expr<SyncReset> {
|
||||
src.cast_to(Bool).cast_to(to_type)
|
||||
}
|
||||
}
|
||||
|
||||
impl ExprCastTo<Clock> for AsyncReset {
|
||||
fn cast_to(src: Expr<Self>, to_type: Clock) -> Expr<Clock> {
|
||||
src.cast_to(Bool).cast_to(to_type)
|
||||
}
|
||||
}
|
||||
|
||||
impl ExprCastTo<AsyncReset> for SyncReset {
|
||||
fn cast_to(src: Expr<Self>, to_type: AsyncReset) -> Expr<AsyncReset> {
|
||||
src.cast_to(Bool).cast_to(to_type)
|
||||
}
|
||||
}
|
||||
|
||||
impl ExprCastTo<SyncReset> for SyncReset {
|
||||
fn cast_to(src: Expr<Self>, _to_type: SyncReset) -> Expr<SyncReset> {
|
||||
src
|
||||
}
|
||||
}
|
||||
|
||||
impl ExprCastTo<Clock> for SyncReset {
|
||||
fn cast_to(src: Expr<Self>, to_type: Clock) -> Expr<Clock> {
|
||||
src.cast_to(Bool).cast_to(to_type)
|
||||
}
|
||||
}
|
||||
|
||||
impl ExprCastTo<AsyncReset> for Reset {
|
||||
fn cast_to(src: Expr<Self>, to_type: AsyncReset) -> Expr<AsyncReset> {
|
||||
src.cast_to(Bool).cast_to(to_type)
|
||||
}
|
||||
}
|
||||
|
||||
impl ExprCastTo<SyncReset> for Reset {
|
||||
fn cast_to(src: Expr<Self>, to_type: SyncReset) -> Expr<SyncReset> {
|
||||
src.cast_to(Bool).cast_to(to_type)
|
||||
}
|
||||
}
|
||||
|
||||
impl ExprCastTo<Reset> for Reset {
|
||||
fn cast_to(src: Expr<Self>, _to_type: Reset) -> Expr<Reset> {
|
||||
src
|
||||
}
|
||||
}
|
||||
|
||||
impl ExprCastTo<Clock> for Reset {
|
||||
fn cast_to(src: Expr<Self>, to_type: Clock) -> Expr<Clock> {
|
||||
src.cast_to(Bool).cast_to(to_type)
|
||||
}
|
||||
}
|
||||
|
||||
impl ExprCastTo<AsyncReset> for Clock {
|
||||
fn cast_to(src: Expr<Self>, to_type: AsyncReset) -> Expr<AsyncReset> {
|
||||
src.cast_to(Bool).cast_to(to_type)
|
||||
}
|
||||
}
|
||||
|
||||
impl ExprCastTo<SyncReset> for Clock {
|
||||
fn cast_to(src: Expr<Self>, to_type: SyncReset) -> Expr<SyncReset> {
|
||||
src.cast_to(Bool).cast_to(to_type)
|
||||
}
|
||||
}
|
||||
|
||||
impl ExprCastTo<Clock> for Clock {
|
||||
fn cast_to(src: Expr<Self>, _to_type: Clock) -> Expr<Clock> {
|
||||
src
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, PartialEq, Eq, Hash)]
|
||||
pub struct FieldAccess<FieldType: Type = CanonicalType> {
|
||||
base: Expr<Bundle>,
|
||||
|
|
Loading…
Reference in a new issue