| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'src/struct/location.erl')
| -rw-r--r-- | src/struct/location.erl | 71 | 
1 files changed, 0 insertions, 71 deletions
| diff --git a/src/struct/location.erl b/src/struct/location.erl deleted file mode 100644 index b8e2bf3..0000000 --- a/src/struct/location.erl +++ /dev/null @@ -1,71 +0,0 @@ --module(location). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --type type() :: {non_neg_integer(), non_neg_integer()}. - --export_type([type/0]). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --export -( -   [ -      decode/1, -      encode/1 -   ] -). - --export -( -   [ -      apply_direction/2, -      dist/2 -   ] -). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec validate ({integer(), integer()}) -> type(). -validate ({X, Y}) -> -   true = (X >= 0), -   true = (Y >= 0), -   {X, Y}. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec apply_direction (direction:enum(), type()) -> type(). -apply_direction (left, {X, Y}) -> -   validate({(X - 1), Y}); -apply_direction (right, {X, Y}) -> -   validate({(X + 1), Y}); -apply_direction (up, {X, Y}) -> -   validate({X, (Y - 1)}); -apply_direction (down, {X, Y}) -> -   validate({X, (Y + 1)}). - --spec dist(type(), type()) -> non_neg_integer(). -dist ({OX, OY}, {DX, DY}) -> -   (abs(DY - OY) + abs(DX - OX)). - --spec encode (type()) -> {list(any())}. -encode ({X, Y}) -> -   { -      [ -         {<<"x">>, X}, -         {<<"y">>, Y} -      ] -   }. - --spec decode (map()) -> type(). -decode (Map) -> -   X = maps:get(<<"x">>, Map), -   Y = maps:get(<<"y">>, Map), - -   true = (is_integer(X) and is_integer(Y)), - -   validate({X, Y}). | 


