gluhn

Values

pub fn checksum(number: Int) -> Int

Calculates the Luhn checksum digit for a number.

Appending this digit to the provided argument produces a Luhn-valid number.

Examples

assert checksum(5949181045) == 9
assert checksum(4992739871) == 6
pub fn generate(n len: Int) -> Result(Int, String)

Returns a valid Luhn number of length n.

Examples:

gluhn.generate(n: 2)   // 42
gluhn.generate(n: 10)  // 5495147679
gluhn.generate(n: 20)  // 937748845815528292001740374585692798738034
pub fn generate_from(
  prefix prefix: Int,
  n len: Int,
) -> Result(Int, String)

Returns a valid Luhn number of length n prefixed by prefix.

Examples:

gluhn.generate_from(prefix: 45617, n: 16)  // 4561750569595021
gluhn.generate_from(prefix: 4242, n: 7)    // 4242103
pub fn validate(number: Int) -> Bool

Checks whether an integer is a valid Luhn number.

Examples:

assert gluhn.validate(4242424242424242) == True
assert gluhn.validate(64727911011000) == False
Search Document