Skip to content

Conversation

@patowen
Copy link
Collaborator

@patowen patowen commented May 24, 2025

The ReadTransactionStillInUse error variant of the redb error type is 160 bytes long, with most of its size coming from the redb::tree_store::TableTree type.

An alternative implementation would be to ignore the error or add a "clippy.toml" to increase the error threshold to 161, but 160 bytes is quite long for a Result type, so boxing the error would likely be the better design.

Note (for anyone reading the comment thread): This PR is a revised version of a PR that initially just ignored the clippy lint in the places it triggered from.

@Ralith
Copy link
Owner

Ralith commented May 25, 2025

Typically you'd address this lint by boxing the error. Is there a reason we shouldn't do that here?

@patowen
Copy link
Collaborator Author

patowen commented May 25, 2025

No particular reason from me. I don't have a good sense of how much we care about the error sizes, and I didn't expect that it would be a bottleneck, so I went with the easiest approach (of not changing the code). I also checked the redb examples, and they also took this shortcut (https://github.com/cberner/redb/pull/974/files).

Boxing the error does seem better though. I need to figure out how to do this in an idiomatic way that interacts with thiserror. 160 bytes is indeed very big.

EDIT: PR updated to stop ignoring errors. I'm not sure if there's a more idiomatic way of doing this.

Errors from redb are 160 bytes long, which could potentially cause
unexpected overhead.
@patowen patowen force-pushed the allow-result-large-error branch from e9d4fe7 to 0234eb3 Compare May 25, 2025 18:22
@patowen patowen changed the title Clippy: allow result_large_err where necessary Clippy: Fix result_large_err by boxing redb errors May 25, 2025
@Ralith Ralith merged commit ac863a4 into Ralith:master May 25, 2025
4 checks passed
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