Use the unsigned integer types for bitwise intrinsics.
Exposing ctpop, ctlz, cttz and bswap as taking signed i8/i16/... is just exposing the internal LLVM names pointlessly (LLVM doesn't have "signed integers" or "unsigned integers", it just has sized integer types with (un)signed *operations*). These operations are semantically working with raw bytes, which the unsigned types model better.
This commit is contained in:
parent
93dc555188
commit
54ec04f1c1
15 changed files with 217 additions and 198 deletions
|
|
@ -32,8 +32,8 @@ use uvll;
|
|||
/// Generic functions related to dealing with sockaddr things
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
pub fn htons(u: u16) -> u16 { mem::to_be16(u as i16) as u16 }
|
||||
pub fn ntohs(u: u16) -> u16 { mem::from_be16(u as i16) as u16 }
|
||||
pub fn htons(u: u16) -> u16 { mem::to_be16(u) }
|
||||
pub fn ntohs(u: u16) -> u16 { mem::from_be16(u) }
|
||||
|
||||
pub fn sockaddr_to_addr(storage: &libc::sockaddr_storage,
|
||||
len: uint) -> ip::SocketAddr {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue