diff options
author | Robin Krahl <robin.krahl@ireas.org> | 2018-07-10 13:08:56 +0200 |
---|---|---|
committer | Robin Krahl <robin.krahl@ireas.org> | 2018-12-10 14:36:50 +0100 |
commit | 1e9556903dffaf77006ba10bba806114428cd53f (patch) | |
tree | 4ca96da83dceeb54ec09b4f94fb61a249309f4c1 | |
parent | 99e417b8b5ca921f45f59f85b887f9bf6f03a267 (diff) | |
download | nitrokey-rs-1e9556903dffaf77006ba10bba806114428cd53f.tar.gz nitrokey-rs-1e9556903dffaf77006ba10bba806114428cd53f.tar.bz2 |
Add a Storage-only example to the DeviceWrapper documentation
As connect() now returns DeviceWrappers of the correct type, this patch
adds an example to the DeviceWrapper documentation that shows how to use
type conditions, i. e. how to execute a command only for Nitrokey
Storage devices.
-rw-r--r-- | TODO.md | 1 | ||||
-rw-r--r-- | src/device.rs | 20 |
2 files changed, 20 insertions, 1 deletions
@@ -35,7 +35,6 @@ - Clear passwords from memory. - Find a nicer syntax for the `write_config` test. - Prevent construction of internal types. -- Add Storage-only examples to the `DeviceWrapper` documentation. - More specific error checking in the tests. - Differentiate empty strings and errors (see `result_from_string`). - Check integer conversions. diff --git a/src/device.rs b/src/device.rs index 4f96860..843b41d 100644 --- a/src/device.rs +++ b/src/device.rs @@ -50,6 +50,26 @@ enum Model { /// # } /// ``` /// +/// Device-specific commands: +/// +/// ```no_run +/// use nitrokey::{DeviceWrapper, Storage}; +/// # use nitrokey::CommandError; +/// +/// fn perform_common_task(device: &DeviceWrapper) {} +/// fn perform_storage_task(device: &Storage) {} +/// +/// # fn try_main() -> Result<(), CommandError> { +/// let device = nitrokey::connect()?; +/// perform_common_task(&device); +/// match device { +/// DeviceWrapper::Storage(storage) => perform_storage_task(&storage), +/// _ => (), +/// }; +/// # Ok(()) +/// # } +/// ``` +/// /// [`connect`]: fn.connect.html // TODO: add example for Storage-specific code #[derive(Debug)] |