tree: don't use a record for tree entry

Return the four elements directly
This commit is contained in:
Carlos Martín Nieto
2013-03-28 05:39:26 +01:00
parent 7987f35e58
commit 5ee6b055e9
2 changed files with 4 additions and 5 deletions

View File

@@ -3,11 +3,9 @@
-record(odb, {handle}). -record(odb, {handle}).
-record(oid, {oid}). -record(oid, {oid}).
-record(object, {type :: atom(), handle}). -record(object, {type :: atom(), handle}).
-record(tree_entry, {mode, type :: atom(), id :: oid(), name :: binary()}).
-type ref() :: #ref{}. -type ref() :: #ref{}.
-type repo() :: #repo{}. -type repo() :: #repo{}.
-type odb() :: #odb{}. -type odb() :: #odb{}.
-type oid() :: #oid{}. -type oid() :: #oid{}.
-type object() :: #object{}. -type object() :: #object{}.
-type tree_entry() :: #tree_entry{}.

View File

@@ -10,8 +10,8 @@
bypath(#object{type=tree,handle=Handle}, Path) -> bypath(#object{type=tree,handle=Handle}, Path) ->
case geef:tree_bypath(Handle, Path) of case geef:tree_bypath(Handle, Path) of
{ok, Mode, Type, Id, Name} -> {ok, Mode, Type, Oid, Name} ->
{ok, #tree_entry{mode=Mode, type=Type, id=geef_oid:parse(Id), name=Name}}; {ok, Mode, Type, #oid{oid=Oid}, Name};
Other -> Other ->
Other Other
end. end.
@@ -26,6 +26,7 @@ id(Obj = #object{type=tree}) ->
bypath_test() -> bypath_test() ->
{ok, Repo} = geef_repo:open(".."), {ok, Repo} = geef_repo:open(".."),
{ok, Tree} = geef_object:lookup(Repo, geef_oid:parse("395e1c39cb203640b78da8458a42afdb92bef7aa")), {ok, Tree} = geef_object:lookup(Repo, geef_oid:parse("395e1c39cb203640b78da8458a42afdb92bef7aa")),
{ok, #tree_entry{type=blob, name= <<"README.md">>}} = geef_tree:bypath(Tree, "README.md"). Id = geef_oid:parse("80d5c15a040c93a4f98f4496a05ebf30cdd58650"),
{ok, 8#100644, blob, Id, <<"README.md">>} = geef_tree:bypath(Tree, "README.md").
-endif. -endif.