pub struct NHSNumber {
pub digits: [i8; 10],
}Expand description
NHS Number is a unique identifier for patients in the National Health Service of England, Wales, and the Isle of Man.
Reference:
use nhs_number::NHSNumber;
let digits = [9, 9, 9, 1, 2, 3, 4, 5, 6, 0];
let nhs_number = NHSNumber { digits: digits };Fields§
§digits: [i8; 10]Implementations§
Source§impl NHSNumber
impl NHSNumber
Sourcepub fn new(digits: [i8; 10]) -> Self
pub fn new(digits: [i8; 10]) -> Self
Create a new NHS Number instance with the provided digits.
Example:
use nhs_number::NHSNumber;
let digits = [9, 9, 9, 1, 2, 3, 4, 5, 6, 0];
let nhs_number = NHSNumber::new(digits);Sourcepub fn check_digit(&self) -> i8
pub fn check_digit(&self) -> i8
Get the NHS Number check digit i.e. the last digit.
Example:
use nhs_number::NHSNumber;
let digits = [9, 9, 9, 1, 2, 3, 4, 5, 6, 0];
let nhs_number = NHSNumber::new(digits);
let check_digit = nhs_number.check_digit();
assert_eq!(check_digit, 0);This method calls the function check_digit().
Sourcepub fn calculate_check_digit(&self) -> i8
pub fn calculate_check_digit(&self) -> i8
Calculate the NHS Number check digit using a checksum algorithm.
Example:
use nhs_number::NHSNumber;
let digits = [9, 9, 9, 1, 2 , 3, 4, 5, 6, 0];
let nhs_number = NHSNumber::new(digits);
let check_digit = nhs_number.calculate_check_digit();
assert_eq!(check_digit, 0);This method calls the function calculate_check_digit().
Sourcepub fn validate_check_digit(&self) -> bool
pub fn validate_check_digit(&self) -> bool
Validate the NHS Number check digit equals the calculated check digit.
Example:
use nhs_number::NHSNumber;
let digits = [9, 9, 9, 1, 2, 3, 4, 5, 6, 0];
let nhs_number = NHSNumber::new(digits);
let is_valid = nhs_number.validate_check_digit();
assert_eq!(is_valid, true);This method calls the function validate_check_digit().
Sourcepub fn testable_random_sample() -> NHSNumber
pub fn testable_random_sample() -> NHSNumber
Generate a testable random sample NHS Number.
Example:
use nhs_number::{NHSNumber, testable::{TESTABLE_MIN, TESTABLE_MAX}};
let sample = NHSNumber::testable_random_sample();
assert!(sample >= *TESTABLE_MIN);
assert!(sample <= *TESTABLE_MAX);This method calls the function testable_random_sample().
Trait Implementations§
Source§impl<'de> Deserialize<'de> for NHSNumber
impl<'de> Deserialize<'de> for NHSNumber
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for NHSNumber
Format the NHS Number as a 10-digit number with spaces.
impl Display for NHSNumber
Format the NHS Number as a 10-digit number with spaces.
Example:
use nhs_number::NHSNumber;
let digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
let nhs_number = NHSNumber::new(digits);
let nhs_number_string = nhs_number.to_string();
assert_eq!(nhs_number_string, "012 345 6789");The NHS Number is formatted as a 10-digit number with spaces:
- 3 digits
- space
- 3 digits
- space
- 4 digits
This method must be equivalent to the function format().
Source§impl FromStr for NHSNumber
Implement the FromStr trait for NHSNumber to allow parsing from a string.
impl FromStr for NHSNumber
Implement the FromStr trait for NHSNumber to allow parsing from a string.
This parser allows for optional space separators in the NHS Number string, so long as the space separators are in their expected positions.
A valid NHS Number format can be either:
-
10 digits e.g. “0123456789”
-
12 characters with spaces e.g. “012 345 6789”.
Example:
use nhs_number::NHSNumber;
use std::str::FromStr;
let nhs_number_str = "012 345 6789";
let nhs_number: NHSNumber = NHSNumber::from_str(nhs_number_str).unwrap();
assert_eq!(nhs_number.digits, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);Source§impl Into<String> for NHSNumber
Convert the NHSNumber into a String.
impl Into<String> for NHSNumber
Convert the NHSNumber into a String.
Example:
use nhs_number::NHSNumber;
let digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
let nhs_number = NHSNumber::new(digits);
let nhs_number_string: String = nhs_number.into();
assert_eq!(nhs_number_string, "012 345 6789");