Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BankAccount ¶
Represents a UK bank account
func CreateBankAccount ¶
func CreateBankAccount(sortCode, accountNumber string) BankAccount
Create a BankAccount structure from a sort code and an account number
func (BankAccount) AccountNumberSlice ¶
func (b BankAccount) AccountNumberSlice() []int
The account number has an integers slice
func (BankAccount) MergeAccountDetails ¶
func (b BankAccount) MergeAccountDetails() []int
Merge the sort code and the account number of a bank account into a single slice
func (BankAccount) NumberAtPosition ¶
func (b BankAccount) NumberAtPosition(letter string) int
NumberAtPosition gets the integer value from a letter, according to the defined code: Letters between u and z select a digit from the sort code Letters between a and h select a digit from the account number
func (BankAccount) SortCodeSlice ¶
func (b BankAccount) SortCodeSlice() []int
The sort code has an integers slice
type Checker ¶
type Checker interface { // Determine if the checker is able to validate the bank account Handles(b BankAccount, sc SortCodeData, attempt int) bool // Tell if the bank account is valid IsValid(b BankAccount, sc SortCodeData, attempt int) bool }
A checker is in charge of validating a bank account number
type Parser ¶
type Parser interface { // Read the weights, exception information and algorithm to use for sort code ranges. Weights() map[string]SortCodeData // Give a list of sort code substitutions Substitutions() map[string]string }
A parser should be able to: - read the weights, exception information and algorithm to use for sort code ranges. - give a list of sort code substitutions.
type SortCodeData ¶
type SortCodeData struct { // The algorithm to use: // - DBLAL: double alternate check // - MOD10: modulus with a modulus of 10 // - MOD11: modulus with a modulus of 11 Algorithm string // Weights to use for the sort code and the account number Weights []int // The exception value. If 0, the sort code does not have an exception. ExceptionValue int // If a sort code follows multiple rule, Next will not be nil. Next *SortCodeData // Indicates the line number where this rule was stored in the file. LineNumber int }
Give information about a sort code
func (SortCodeData) FollowsExceptions ¶
func (s SortCodeData) FollowsExceptions(ex1, ex2 int) bool
FollowsExceptions checks if a sort code follows 2 exceptions.
func (SortCodeData) HasException ¶
func (s SortCodeData) HasException() bool
HasException Does this sort code has got an exception?
func (SortCodeData) HasNext ¶
func (s SortCodeData) HasNext() bool
HasNext Does this sort code follows another rule?
func (SortCodeData) IsException ¶
func (s SortCodeData) IsException(exceptionValue int) bool
IsException checks if a sort code follows an exception.
type SortCodeRange ¶
type SortCodeRange struct { // Beginning of the sort code range. Start int // End of the sort code range. End int // The algorithm to use: // - DBLAL: double alternate check // - MOD10: modulus with a modulus of 10 // - MOD11: modulus with a modulus of 11 Algorithm string // Weights to use for the sort code and the account number Weights []int // The exception value. If 0, the sort code does not have an exception. ExceptionValue int // Indicates the line number where this rule was stored in the file. LineNumber int }
This structure describes a sort code range, starting from a sort code and ending to another.
func (SortCodeRange) HasException ¶
func (sc SortCodeRange) HasException() bool
HasException checks if a sort code range has got an exception