parent
4878495914
commit
e7b5b55f67
@ -0,0 +1,44 @@ |
||||
package post |
||||
|
||||
import "errors" |
||||
|
||||
// ErrFormatStringMalformed indicates that a string could not be converted to a
|
||||
// Format.
|
||||
var ErrFormatStringMalformed = errors.New("format string malformed") |
||||
|
||||
// Format describes the format of the body of a Post.
|
||||
type Format string |
||||
|
||||
// Enumeration of possible formats.
|
||||
const ( |
||||
FormatMarkdown Format = "md" |
||||
FormatGemtext Format = "gmi" |
||||
) |
||||
|
||||
// Formats slice of all possible Formats.
|
||||
var Formats = []Format{ |
||||
FormatMarkdown, |
||||
FormatGemtext, |
||||
} |
||||
|
||||
var strsToFormats = func() map[string]Format { |
||||
|
||||
m := map[string]Format{} |
||||
|
||||
for _, f := range Formats { |
||||
m[string(f)] = f |
||||
} |
||||
|
||||
return m |
||||
}() |
||||
|
||||
// FormatFromString parses a string into a Format, or returns
|
||||
// ErrFormatStringMalformed.
|
||||
func FormatFromString(str string) (Format, error) { |
||||
|
||||
if f, ok := strsToFormats[str]; ok { |
||||
return f, nil |
||||
} |
||||
|
||||
return "", ErrFormatStringMalformed |
||||
} |
Loading…
Reference in new issue