package types type Permission int const ( // Displays as: pv // // Other modules cannot access the section or member. PermissionPrivate Permission = iota // Displays as: ro // // Other modules can access the section or member, but can only read its // value. It is effectively immutable. // // Data sections, member variables, etc: The value can be read by other // modules but not altered by them // // Functions: The function can be called by other modules. // // Methods: The method can be called by other modules, but cannot be // overriden by a type defined in another module inheriting from this // method's reciever. PermissionReadOnly // Displays as: rw // // Other modules cannot only access the section or member's value, but // can alter it. It is effectively mutable. // // Data sections, member variables, etc: The value can be read and // altered at will by other modules. // // Functions: This permission cannot be applied to non-method functions. // // Methods: The method can be called by other modules, and overridden by // types defined in other modules inheriting from the method's reciever. PermissionReadWrite ) // PermissionFrom creates a new permission value from the specified text. If the // input text was not valid, the function returns false for worked. Otherwise, // it returns true. func PermissionFrom (data string) (permission Permission, worked bool) { worked = true switch data { case "pv": permission = PermissionPrivate case "ro": permission = PermissionReadOnly case "rw": permission = PermissionReadWrite default: worked = false } return } // ToString converts the permission value into a string. func (permission Permission) ToString () (output string) { switch permission { case PermissionPrivate: output = "pv" case PermissionReadOnly: output = "ro" case PermissionReadWrite: output = "rw" } return }