Files

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.