code: func New(s string) (FileMode, error) {
  	n, err := strconv.ParseUint(s, 8, 32)
  	if err != nil {
  		return Empty, err
  	}
  
  	return FileMode(n), nil
  }
docs: // New takes the octal string representation of a FileMode and returns
  // the FileMode and a nil error.  If the string can not be parsed to a
  // 32 bit unsigned octal number, it returns Empty and the parsing error.
  //
  // Example: "40000" means Dir, "100644" means Regular.
  //
  // Please note this function does not check if the returned FileMode
  // is valid in git or if it is malformed.  For instance, "1" will
  // return the malformed FileMode(1) and a nil error.