# File lib/ttfunk/table/cmap/format00.rb, line 18
        def self.encode(charmap)
          next_id = 0 
          glyph_indexes = Array.new(256, 0)
          glyph_map = { 0 => 0 }

          new_map = charmap.keys.sort.inject({}) do |map, code|
            glyph_map[charmap[code]] ||= next_id += 1
            map[code] = { :old => charmap[code], :new => glyph_map[charmap[code]] }
            glyph_indexes[code] = glyph_map[charmap[code]]
            map
          end

          # format, length, language, indices
          subtable = [0, 262, 0, *glyph_indexes].pack("nnnC*")

          { :charmap => new_map, :subtable => subtable, :max_glyph_id => next_id+1 }
        end