Skip to content

driver: wrap fd returned from nsm_init in Option - #54

Open
crawford wants to merge 1 commit into
aws:mainfrom
crawford:init
Open

driver: wrap fd returned from nsm_init in Option#54
crawford wants to merge 1 commit into
aws:mainfrom
crawford:init

Conversation

@crawford

Copy link
Copy Markdown

Returning an Option instead of the raw file descriptor makes it easier for the caller to ensure that the file was opened successfully. It also forces them to handle any errors instead of allowing them to assume that it was successful, only to be met with "InternalError" when nsm_process_request is later used.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Returning an Option instead of the raw file descriptor makes it easier
for the caller to ensure that the file was opened successfully. It
also forces them to handle any errors instead of allowing them to
assume that it was successful, only to be met with "InternalError"
when nsm_process_request is later used.
Comment thread src/driver/mod.rs
Ok(open_dev) => {
debug!("Device file '{}' opened successfully.", DEV_FILE);
open_dev.into_raw_fd()
Some(open_dev.into_raw_fd())

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Semantically, this should be a Result.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally agreed, but this is the pattern used in this repo. I was trying to make it as appetizing as possible for the maintainers. I'm happy to change it though. (Are you in a position to merge this PR?)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not 🙂

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants