package escpos

type Encoding struct {
	page          uint8
	iconvEncoding string
}

var allEncodings = []Encoding{
	CharPage0,
	CharPage1,
	CharPage2,
	CharPage3,
	CharPage4,
	CharPage5,
	CharPage6,
	CharPage7,
	CharPage8,
	CharPage16,
	CharPage17,
	CharPage18,
	CharPage19,
}

var (
	CharPage0 = Encoding{
		page:          0,
		iconvEncoding: "cp437",
	}
	CharPagePC427          = CharPage0
	CharPageUSA            = CharPage0
	CharPageStandardEurope = CharPage0

	CharPage1 = Encoding{
		page: 1,
	}
	CharPageKatakana = CharPage1

	CharPage2 = Encoding{
		page:          2,
		iconvEncoding: "cp850",
	}
	CharPagePC850        = CharPage2
	CharPageMultilingual = CharPage2

	CharPage3 = Encoding{
		page:          3,
		iconvEncoding: "cp860",
	}
	CharPagePC860      = CharPage3
	CharPagePortuguese = CharPage3

	CharPage4 = Encoding{
		page:          4,
		iconvEncoding: "cp863",
	}
	CharPagePC863          = CharPage4
	CharPageCanadianFrench = CharPage4

	CharPage5 = Encoding{
		page:          5,
		iconvEncoding: "cp865",
	}
	CharPagePC865  = CharPage5
	CharPageNordic = CharPage5

	CharPage6 = Encoding{
		page: 6,
	}
	CharPageHirakana         = CharPage6
	CharPageSimplifiedKanji1 = CharPage6

	CharPage7 = Encoding{
		page: 7,
	}
	CharPageSimplifiedKanji2 = CharPage7

	CharPage8 = Encoding{
		page: 8,
	}
	CharPageSimplifiedKanji3 = CharPage8

	CharPage16 = Encoding{
		page:          16,
		iconvEncoding: "cp1252",
	}
	CharPageWPC1252 = CharPage16

	CharPage17 = Encoding{
		page:          17,
		iconvEncoding: "cp866",
	}
	CharPagePC866     = CharPage17
	CharPageCyrillic2 = CharPage17

	CharPage18 = Encoding{
		page:          18,
		iconvEncoding: "cp852",
	}
	CharPageLatin2 = CharPage18

	CharPage19 = Encoding{
		page:          19,
		iconvEncoding: "cp858",
	}
	CharPageEuro = CharPage19

	CharPage254 = Encoding{
		page: 254,
	}

	CharPage255 = Encoding{
		page: 255,
	}
)