code: func VerifyEncoded(s string, password []byte) (bool, error) {
  	mode, err := getMode(s)
  
  	if err != nil {
  		return false, err
  	}
  	
  	cs := C.CString(s)
  	defer C.free(unsafe.Pointer(cs))
  
  	result := C.argon2_verify(
  		cs,
  		unsafe.Pointer(&password[0]),
  		C.size_t(len(password)),
  		C.argon2_type(mode))
  
  	if result == C.ARGON2_OK {
  		return true, nil
  	} else if result == C.ARGON2_VERIFY_MISMATCH {
  		return false, nil
  	}
  
  	// argon2_verify always seems to return an error in this case...
  	return false, Error(result)
  }
docs: // VerifyEncoded verifies an encoded Argon2 hash s against a plaintext password.