Crate sanitizer[][src]

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

Basic usage

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

prelude

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

Structs

IntSanitizer

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

StringSanitizer

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

Traits

Sanitize

The Sanitize trait generalises types that are to be sanitized.