diff --git a/generator/src/generator/namespace.rs b/generator/src/generator/namespace.rs index cc17cb37..95bc6d2d 100644 --- a/generator/src/generator/namespace.rs +++ b/generator/src/generator/namespace.rs @@ -3689,9 +3689,14 @@ impl<'ns, 'c> NamespaceGenerator<'ns, 'c> { if let xcbdefs::TypeRef::BuiltIn(xcbdefs::BuiltInType::Bool) = type_type { // Cast this to a u8 before calling try_into, because there's // no TryFrom implementation. - outln!(out, "let {var} = {var} as u8;", var = var_name); + outln!( + out, + "let {var} = u8::from({var}).try_into()?;", + var = var_name + ); + } else { + outln!(out, "let {var} = {var}.try_into()?;", var = var_name); } - outln!(out, "let {var} = {var}.try_into()?;", var = var_name); } if is_xproto_gravity(&enum_def) { let enum_ns = enum_def.namespace.upgrade().unwrap(); diff --git a/src/protocol/xinput.rs b/src/protocol/xinput.rs index cf996f2b..0c0fe200 100644 --- a/src/protocol/xinput.rs +++ b/src/protocol/xinput.rs @@ -12458,8 +12458,7 @@ impl<'input> XIGrabDeviceRequest<'input> { let (paired_device_mode, remaining) = u8::try_parse(remaining)?; let paired_device_mode = paired_device_mode.try_into()?; let (owner_events, remaining) = bool::try_parse(remaining)?; - let owner_events = owner_events as u8; - let owner_events = owner_events.try_into()?; + let owner_events = u8::from(owner_events).try_into()?; let remaining = remaining.get(1..).ok_or(ParseError::ParseError)?; let (mask_len, remaining) = u16::try_parse(remaining)?; let (mask, remaining) = crate::x11_utils::parse_list::(remaining, mask_len.try_into().or(Err(ParseError::ParseError))?)?; @@ -13082,8 +13081,7 @@ impl<'input> XIPassiveGrabDeviceRequest<'input> { let (paired_device_mode, remaining) = u8::try_parse(remaining)?; let paired_device_mode = paired_device_mode.try_into()?; let (owner_events, remaining) = bool::try_parse(remaining)?; - let owner_events = owner_events as u8; - let owner_events = owner_events.try_into()?; + let owner_events = u8::from(owner_events).try_into()?; let remaining = remaining.get(2..).ok_or(ParseError::ParseError)?; let (mask, remaining) = crate::x11_utils::parse_list::(remaining, mask_len.try_into().or(Err(ParseError::ParseError))?)?; let (modifiers, remaining) = crate::x11_utils::parse_list::(remaining, num_modifiers.try_into().or(Err(ParseError::ParseError))?)?;