Crate sanitizer[][src]

Expand description

The Sanitizer crate helps in sanitizing structured data by providing macros and data structures to perform sanitization on fields.

Sanitizer uses heck to allow case conversions

Example

If you want your incoming data which is serialised to a structure to be sanitized then first of all, you make a struct and derive the Sanitize trait on it. The macro will implement the trait for you all you have to do now is to call the sanitize method on the trait

use sanitizer::prelude::*;

#[derive(Sanitize)]
struct User {
	#[sanitize(trim)]
	name: String,
	#[sanitize(trim, lower_case)]
	email: String
}

fn main() {
	let mut instance = User {
		name: String::from("   John Doe123 "),
		email: String::from(" JohnDoe123@email.com")
	};
	instance.sanitize();
	assert_eq!(instance.name, "John Doe123");
	assert_eq!(instance.email, "johndoe123@email.com");
}

To see a list of available sanitizers, check the sanitizer-macros crate

Modules

Bring all the sanitizers, the derive macro, and the Sanitize trait in scope

Structs

The IntSanitizer structure is a wrapper over a type T which is to be sanitized, T can be anything that’s PartialOrd

The Sanitizer structure is a wrapper over a String type which is to be sanitized.

Traits

The Sanitize trait generalises types that are to be sanitized.