aboutsummaryrefslogtreecommitdiff
path: root/lib/exgit/packfile.ex
blob: 38232595ffec2dc1908c49f8793c94de3d8b3c48 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
defmodule Exgit.Packfile do
  @moduledoc """
  Module for parsing Git Packfiles
  """

  @spec parse_header(binary) :: {:pack, 2|3, integer}
  def parse_header(packfile) do
    <<"PACK" :: utf8, 2 :: size(32), n :: size(32)>> <> rest = packfile
    {:pack, 2, n, rest}
  end

  @spec parse_objects(integer, binary) :: [{:commit|:blob|:tree,
                                            binary,
                                            binary}]
  def parse_objects(n, pack) do
    nil
  end
end