mirror of
https://github.com/zama-ai/tfhe-rs.git
synced 2026-01-07 22:04:10 -05:00
Project specific lints for TFHE-rs
This tool is based on dylint.
Usage
From TFHE-rs root folder:
make tfhe_lints
serialize_without_versionize
What it does
For every type that implements Serialize, checks that it also implement Versionize
Why is this bad?
If a type is serializable but does not implement Versionize, it is likely that the implementation has been forgotten.
Example
#[derive(Serialize)]
pub struct MyStruct {}
Use instead:
#[derive(Serialize, Versionize)]
#[versionize(MyStructVersions)]
pub struct MyStruct {}
Updating to new toolchains
The dylint library is frequently updated to support new toolchains. To update the tool to the latest supported toolchain, simply run the following command in this folder:
cargo dylint upgrade
Since the tool uses the Rust compiler API, which is unstable, manual adjustments to the code may be necessary.