1package matchers 2 3var ( 4 TypeWoff = newType("woff", "application/font-woff") 5 TypeWoff2 = newType("woff2", "application/font-woff") 6 TypeTtf = newType("ttf", "application/font-sfnt") 7 TypeOtf = newType("otf", "application/font-sfnt") 8) 9 10var Font = Map{ 11 TypeWoff: Woff, 12 TypeWoff2: Woff2, 13 TypeTtf: Ttf, 14 TypeOtf: Otf, 15} 16 17func Woff(buf []byte) bool { 18 return len(buf) > 7 && 19 buf[0] == 0x77 && buf[1] == 0x4F && 20 buf[2] == 0x46 && buf[3] == 0x46 && 21 buf[4] == 0x00 && buf[5] == 0x01 && 22 buf[6] == 0x00 && buf[7] == 0x00 23} 24 25func Woff2(buf []byte) bool { 26 return len(buf) > 7 && 27 buf[0] == 0x77 && buf[1] == 0x4F && 28 buf[2] == 0x46 && buf[3] == 0x32 && 29 buf[4] == 0x00 && buf[5] == 0x01 && 30 buf[6] == 0x00 && buf[7] == 0x00 31} 32 33func Ttf(buf []byte) bool { 34 return len(buf) > 4 && 35 buf[0] == 0x00 && buf[1] == 0x01 && 36 buf[2] == 0x00 && buf[3] == 0x00 && 37 buf[4] == 0x00 38} 39 40func Otf(buf []byte) bool { 41 return len(buf) > 4 && 42 buf[0] == 0x4F && buf[1] == 0x54 && 43 buf[2] == 0x54 && buf[3] == 0x4F && 44 buf[4] == 0x00 45} 46