  When decoding .urlSafe encoded strings padding characters are ignored.
  */
 public struct Base64 {
+    /** Decode a base64 encoded string.
+     
+    - parameter string: The input string.
+    - parameter coding: The decoding standard. Defaults to .standard.
+    - returns: The decoded data object.
+    - Throws: Throws an `Base64Error` error.
+    */
     public static func decode(_ string: String, coding: Base64Coding = .standard) throws -> Data? {
         if string.isEmpty { return nil }
         


/** Base64Coding provides alphabet handling and base functionality
 to proof that the string is a valid base64 encoded string via
 `validityRegEX` (Regular expression tested on [RegExr](http://regexr.com/))
 and means to get a value for a given index and vice versa.
 */
public enum Base64Coding {
    case standard, urlSafe
    
    var alphabet: [UInt8] {
        switch self {

}

public enum Base64Padding {
    /** Add padding character if necessary. */
    case on
    
    /** Omit the final padding step, once encoding is complete. */
    case off
}

public enum Base64Error: Error {
    /** Thrown when the input string contains characters not allowed for the given coding case. */
    case containsIllegalCharacters
    
    /** When alphabet handling fails. */
    case codingError
}

/** Provides base-64 en-/decoding for the standard and url safe alphabet.
