You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Deku has support for no_std.
It also supports std::net::Ipv4Addr (and other IP addresses structures).
However, in no_std the std IP addresses structures are replaced with core::net:: IP addresses.
I think it's worth supporting those structure as well for completeness ease of developing structures for both std/no_std targets.
Is there a way to implement this myself in my library?
When I just try to copy the code from Deku and apply it on core::net::Ipv4Addr, rust doesn't allow it because DekuWrite is a foreign trait. Any way to overcome it without replacing the structure with my own Ipv4Addr structure (and then using standard serialization) which then cause complications elsewhere?
This is what I tried:
impl<Ctx> DekuWrite<Ctx> for core::net::Ipv4Addr
where
u32: DekuWrite<Ctx>,
{
fn write(&self, output: &mut BitVec<u8, Msb0>, ctx: Ctx) -> Result<(), DekuError> {
let ip: u32 = (*self).into();
ip.write(output, ctx)
}
}
This is the error rust raised:
error[E0210]: type parameter `Ctx` must be used as the type parameter for some local type (e.g., `MyStruct<Ctx>`)
--> src/lib.rs:24:6
|
24 | impl<Ctx> DekuWrite<Ctx> for core::net::Ipv4Addr
| ^^^ type parameter `Ctx` must be used as the type parameter for some local type
|
= note: implementing a foreign trait is only possible if at least one of the types for which it is implemented is local
= note: only traits defined in the current crate can be implemented for a type parameter
The text was updated successfully, but these errors were encountered:
Deku has support for no_std.
It also supports std::net::Ipv4Addr (and other IP addresses structures).
However, in no_std the std IP addresses structures are replaced with core::net:: IP addresses.
I think it's worth supporting those structure as well for completeness ease of developing structures for both std/no_std targets.
Is there a way to implement this myself in my library?
When I just try to copy the code from Deku and apply it on core::net::Ipv4Addr, rust doesn't allow it because DekuWrite is a foreign trait. Any way to overcome it without replacing the structure with my own Ipv4Addr structure (and then using standard serialization) which then cause complications elsewhere?
This is what I tried:
This is the error rust raised:
The text was updated successfully, but these errors were encountered: