Documentation
¶
Overview ¶
Package magic identifies the physical format and text encoding of file content.
Index ¶
Examples ¶
Constants ¶
const ( FormatText = "text" FormatHTML = "html" FormatXML = "xml" FormatSVG = "svg" FormatZIP = "zip" FormatTAR = "tar" FormatGZIP = "gzip" FormatBZIP2 = "bzip2" FormatXZ = "xz" FormatZstd = "zstd" FormatPDF = "pdf" FormatCFBF = "cfbf" FormatPNG = "png" FormatJPEG = "jpeg" FormatGIF = "gif" FormatELF = "elf" FormatMachO = "mach-o" FormatPE = "pe" FormatWASM = "wasm" FormatAR = "ar" )
Format values reported in Result.Format.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Reason ¶
type Reason string
Reason explains why a classification is provisional or unknown.
const ( // ReasonNone means the classification is final for the supplied input. ReasonNone Reason = "" // ReasonNeedMore means more bytes could change a prefix classification. ReasonNeedMore Reason = "need-more" // ReasonInvalidText means the bytes are neither accepted text nor // recognised binary content. ReasonInvalidText Reason = "invalid-text" )
type Result ¶
type Result struct {
Kind Kind
MIME string
Format string
Encoding string
Reason Reason
NeedBytes int
}
Result describes the physical format and text properties of content.
MIME never includes a charset parameter. Encoding uses lowercase registered names. Empty fields mean that the corresponding property was not identified.
func Detect ¶
Detect classifies data as the complete content of a file.
Example ¶
package main
import (
"fmt"
"github.com/git-pkgs/magic"
)
func main() {
result := magic.Detect([]byte("package main\n"))
fmt.Println(result.Kind, result.Format, result.MIME, result.Encoding)
}
Output: text text text/plain utf-8
func DetectPrefix ¶
DetectPrefix classifies an intentionally bounded file prefix.
ReasonNeedMore reports that later bytes could change the answer. NeedBytes is reserved for a known minimum total length and is zero in this release.
Example ¶
package main
import (
"fmt"
"github.com/git-pkgs/magic"
)
func main() {
result := magic.DetectPrefix([]byte("hello"))
fmt.Println(result.Kind, result.Reason)
}
Output: text need-more