From 78e0693b8a5d18dc1737a1183a149c5e550e463a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Fri, 25 Jan 2013 03:33:02 +0100 Subject: [PATCH] Add typespecs to the functions --- src/geef_odb.erl | 1 + src/geef_records.hlr | 4 +++- src/geef_ref.erl | 6 ++++-- src/geef_repo.erl | 6 +++++- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/geef_odb.erl b/src/geef_odb.erl index 4d80c64..fa6d8dd 100644 --- a/src/geef_odb.erl +++ b/src/geef_odb.erl @@ -3,5 +3,6 @@ -include("geef_records.hlr"). +-spec exists(odb(), string()) -> boolean(). exists(#odb{handle=Handle}, Sha) -> geef:odb_object_exists(Handle, Sha). diff --git a/src/geef_records.hlr b/src/geef_records.hlr index f462633..2d033f4 100644 --- a/src/geef_records.hlr +++ b/src/geef_records.hlr @@ -2,4 +2,6 @@ -record(repo, {handle}). -record(odb, {handle}). --type repo() :: repo. +-type ref() :: #ref{}. +-type repo() :: #repo{}. +-type odb() :: #odb{}. diff --git a/src/geef_ref.erl b/src/geef_ref.erl index 14d85a5..bf67a45 100644 --- a/src/geef_ref.erl +++ b/src/geef_ref.erl @@ -4,11 +4,12 @@ -include("geef_records.hlr"). +-spec new(term()) -> ref(). new(Handle) -> Type = geef:reference_type(Handle), #ref{handle=Handle, type=Type}. --spec lookup(term(), iolist()) -> term(). +-spec lookup(repo(), iolist()) -> {ok, ref()} | {error, term()}. lookup(#repo{handle=Handle}, Refname) -> case geef:reference_lookup(Handle, Refname) of {ok, Ref} -> @@ -17,6 +18,7 @@ lookup(#repo{handle=Handle}, Refname) -> Other end. +-spec resolve(ref()) -> {ok, ref()} | {error, term()}. resolve(#ref{handle=Handle}) -> case geef:reference_resolve(Handle) of {ok, Ref} -> @@ -25,6 +27,6 @@ resolve(#ref{handle=Handle}) -> Other end. --spec target(term()) -> binary(). +-spec target(ref()) -> binary(). target(#ref{handle=Handle, type=oid}) -> geef:reference_target(Handle). diff --git a/src/geef_repo.erl b/src/geef_repo.erl index 2315b1d..9dda368 100644 --- a/src/geef_repo.erl +++ b/src/geef_repo.erl @@ -4,19 +4,23 @@ -include("geef_records.hlr"). +-spec path(repo()) -> binary(). path(#repo{handle=Handle}) -> geef:repository_get_path(Handle). +-spec workdir(repo()) -> binary(). workdir(#repo{handle=Handle}) -> geef:repository_get_workdir(Handle). +-spec is_bare(repo()) -> boolean(). is_bare(#repo{handle=Handle}) -> geef:repository_is_bare(Handle). +-spec references(repo()) -> [binary()]. references(#repo{handle=Handle}) -> geef:reference_list(Handle). --spec open(iolist()) -> {ok, term()} | {error, term()}. +-spec open(iolist()) -> {ok, repo()} | {error, term()}. open(Path) -> case geef:repository_open(Path) of {ok, Handle} ->