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