Kevin Mehall
7f6f7948d8
Avoid panic during Tokio runtime shutdown
...
Fixes #156
2025-07-20 10:42:40 -06:00
Kevin Mehall
c1492ae441
Merge pull request #154 from kevinmehall/windows-interface-info
...
windows: Always use interface descriptors rather than child device nodes for InterfaceInfo
2025-07-16 23:36:29 -06:00
Kevin Mehall
6304e71987
windows: Always use interface descriptors rather than child device nodes for InterfaceInfo
2025-07-16 23:27:42 -06:00
Kevin Mehall
e0d1d6489d
windows: Update windows-sys
2025-07-16 23:27:42 -06:00
Kevin Mehall
ccb40bd01d
Merge pull request #153 from kevinmehall/io-traits
...
Tweaks for EndpointRead / EndpointWrite
2025-07-16 22:11:53 -06:00
Kevin Mehall
371b91c85f
EndpointRead / EndpointWrite examples with tokio and smol
2025-07-16 21:47:22 -06:00
Kevin Mehall
eb12376bc2
EndpointWrite: require num_transfers is nonzero
2025-07-15 23:16:37 -06:00
Kevin Mehall
a3c57e9336
EndpointRead: Error type for EndpointReadUntilShortPacket::consume_end
2025-07-15 23:06:40 -06:00
Kevin Mehall
89d55ab6a2
EndpointRead: improve semantics for num_transfers
2025-07-15 23:06:40 -06:00
Kevin Mehall
0fd3db6089
v0.2.0-beta.2
2025-06-15 15:02:26 -06:00
Kevin Mehall
915f79005d
Merge pull request #148 from kevinmehall/macos-update
...
macOS: Update core-foundation, switch to IOUSBInterfaceInterface700 and IOUSBDeviceInterface650
2025-06-15 14:35:17 -06:00
Kevin Mehall
0de3706d9f
macos: Use IOUSBInterfaceInterface700 and IOUSBDeviceInterface650
...
IOUSBInterfaceInterface700 was added in macOS 10.10+ and
IOUSBDeviceInterface650 in macOS 10.9+, both older than Rust's
minimum of 10.12 so technically the breaking change was already
broken by Rust, but might as well get this in on the nusb v0.2
semver bump.
Co-authored-by: Charles Strahan <charles@cstrahan.com>
2025-06-15 14:20:23 -06:00
Kevin Mehall
3c21f7ea11
macos: Update core-foundation
2025-06-15 14:20:23 -06:00
Kevin Mehall
b34e320718
Enable all features for docs.rs
2025-06-15 14:20:22 -06:00
Kevin Mehall
38e85c88dc
Update dev-dependencies
2025-06-15 13:36:20 -06:00
Kevin Mehall
8d55c38aa4
Fix warnings
2025-06-15 13:36:20 -06:00
Kevin Mehall
a693c9211c
linux: Log submitted transfer sizes
2025-06-15 13:04:15 -06:00
Kevin Mehall
8b5dde13f4
Merge pull request #141 from kevinmehall/io-traits
...
Add EndpointRead and EndpointWrite
2025-06-15 12:57:32 -06:00
Kevin Mehall
b1cc46e918
Add EndpointRead and EndpointWrite
2025-06-15 12:52:41 -06:00
Kevin Mehall
04e8ddfc30
Merge pull request #147 from kevinmehall/blocking-no-runtime
...
Panic if awaiting a blocking syscall without `smol` or `tokio` features.
2025-06-15 11:25:07 -06:00
Kevin Mehall
4da8f325b8
Panic if awaiting a blocking syscall without smol or tokio features.
...
This ensures the `tokio` feature is additive, because `tokio::task::spawn_blocking`
will panic if called from a thread without an active tokio runtime. If you
intentionally want the blocking behavior, you can always use `.wait()` instead
of `.await`.
2025-06-15 11:20:03 -06:00
Kevin Mehall
bb39ff521d
Merge pull request #142 from kevinmehall/errors
...
Define a new Error type instead of re-exporting std::io::Error
2025-06-14 14:21:11 -06:00
Kevin Mehall
535fc7d458
impl Debug for Device, Interface, and Endpoint
2025-06-01 23:28:45 -06:00
Kevin Mehall
6895347f4b
Define a new Error type instead of re-exporting std::io::Error
...
The default mapping from OS error codes to io::Error's messages is often wrong
or misleading. We can do a lot better, but it takes a lot of error-handling code.
2025-06-01 23:28:45 -06:00
Kevin Mehall
592f57a3e0
linux: refactor device initial get_configuration
2025-06-01 12:38:58 -06:00
Kevin Mehall
f1f4bec4a1
Merge pull request #140 from kevinmehall/macos-descriptor
...
macos: Copy configuration descriptors when opening device
2025-06-01 12:38:05 -06:00
Kevin Mehall
f66c262221
macos: Copy config descriptors when opening device
...
These functions can fail if the device is disconnected, so make our
own copy of the buffer for consistency with other platforms.
2025-05-31 11:46:05 -06:00
Kevin Mehall
7730be5f86
Merge pull request #138 from kevinmehall/info-cleanup
...
Canonicalize sysfs paths, remove BusInfo::parent_path
2025-05-31 11:41:38 -06:00
Kevin Mehall
03468acd5f
linux: Remove BusInfo::parent_path
...
You can just use the Path method
2025-05-31 11:25:28 -06:00
Kevin Mehall
e09a4ef458
linux: Canonicalize sysfs paths
...
For consistency with hotplug events
2025-05-31 11:25:28 -06:00
Kevin Mehall
9458831e6e
Don't assume bus_id is 3 characters
2025-05-29 23:10:06 -07:00
Kevin Mehall
3ee0e22f81
Actually remove atomic-waker dependency
2025-05-26 12:51:39 -06:00
Kevin Mehall
3d2eb04f55
Docs fix
2025-05-26 12:51:30 -06:00
Kevin Mehall
4edb4a47ca
v0.2-beta.1
2025-05-25 12:57:52 -06:00
Kevin Mehall
123ce06efd
Merge pull request #135 from kevinmehall/errors
...
Error handling fixes
2025-05-25 12:50:37 -06:00
Kevin Mehall
24c7ac5efd
Error on IN transfer that is not a multiple of max packet size on all platforms
2025-05-25 11:47:50 -06:00
Kevin Mehall
e02378e556
windows: InvalidArgument for unsupported control recipient interface
2025-05-25 11:47:50 -06:00
Kevin Mehall
00667caa01
windows: fix submit-time error
2025-05-25 11:47:50 -06:00
Kevin Mehall
5ac12ef088
macos: map error type for control timeout
2025-05-25 11:47:50 -06:00
Kevin Mehall
18bb260623
Make TransferError::Unknown hold u32
...
macOS errors have the high bit set
2025-05-25 11:47:50 -06:00
Kevin Mehall
221867978b
Merge pull request #134 from kevinmehall/clippy
...
Clippy fixes
2025-05-24 15:16:40 -06:00
Kevin Mehall
700b8da9d8
Clippy fixes
2025-05-24 14:56:33 -06:00
Kevin Mehall
19e540fdd7
Merge pull request #131 from kevinmehall/fixes
...
Clean up barely-used dependency, fix potential synchronization issues
2025-05-10 13:21:13 -06:00
Kevin Mehall
5a23b845a4
Fix memory ordering for dropping transfers
2025-05-10 13:08:29 -06:00
Kevin Mehall
4a9c3e5bbc
Prevent dropping a device while a control transfer is pending
2025-05-04 10:03:53 -06:00
Kevin Mehall
dac6f52c27
Remove atomic-waker
2025-05-03 22:30:37 -06:00
Kevin Mehall
e1796a80dd
Merge pull request #117 from kevinmehall/redesign
...
Redesign endpoint and transfer API
2025-05-03 22:11:34 -06:00
Kevin Mehall
3f558194da
windows: Revert to GetOverlappedResult for completion status
...
OVERLAPPED.Internal contains NTSTATUS instead of WIN32_ERROR,
and while it seems very unlikely to change, is documented as
subject to change.
2025-05-03 15:57:11 -06:00
Kevin Mehall
b976e91ce8
Docs edits
2025-05-03 14:10:37 -06:00
Kevin Mehall
4a3b5ddf9f
Simplify actual_len vs requested_len
2025-05-03 14:10:37 -06:00