Browse Source

kvs:add/2

Namdak Tonpa 7 years ago
parent
commit
8ae34a5060
2 changed files with 3 additions and 3 deletions
  1. 0 1
      include/kvs.hrl
  2. 3 2
      src/kvs_stream.erl

+ 0 - 1
include/kvs.hrl

@@ -3,7 +3,6 @@
 
 
 -record(cur, {feed=[]::term(),
 -record(cur, {feed=[]::term(),
               tab= []::atom(),
               tab= []::atom(),
-              id=  []::[]|integer(),
               val= []::[]|tuple(),
               val= []::[]|tuple(),
               dir= next::next|prev,
               dir= next::next|prev,
               top= []::[]|integer(),
               top= []::[]|integer(),

+ 3 - 2
src/kvs_stream.erl

@@ -2,7 +2,7 @@
 -include("kvs.hrl").
 -include("kvs.hrl").
 -include("user.hrl").
 -include("user.hrl").
 -compile(export_all).
 -compile(export_all).
--export([ new/1, top/1, bot/1, take/2, load/1, save/1, seek/2, next/1, prev/1, add/3 ]).
+-export([ new/1, top/1, bot/1, take/2, load/1, save/1, seek/2, next/1, prev/1, add/2 ]).
 
 
 % PUBLIC
 % PUBLIC
 
 
@@ -19,6 +19,7 @@ prev(#cur{tab=T,val=[]}=C) -> {error,[]};
 prev(#cur{tab=T,val=B}=C)  -> lookup(kvs:get(T,ep(B)),C).
 prev(#cur{tab=T,val=B}=C)  -> lookup(kvs:get(T,ep(B)),C).
 take(N,#cur{dir=D}=C)      -> take(D,N,C,[]).
 take(N,#cur{dir=D}=C)      -> take(D,N,C,[]).
 seek(Id, #cur{tab=T}=C)    -> {ok,R}=kvs:get(T,Id), C#cur{val=R}.
 seek(Id, #cur{tab=T}=C)    -> {ok,R}=kvs:get(T,Id), C#cur{val=R}.
+add(M,#cur{}=C)            -> add(dir(C),M,C).
 remove(Id, #cur{tab=M}=C)  -> {ok,R}=kvs:get(M,Id),
 remove(Id, #cur{tab=M}=C)  -> {ok,R}=kvs:get(M,Id),
                               join(M,Id,[fix(kvs:get(M,X))||X<-[ep(R),en(R)]],C).
                               join(M,Id,[fix(kvs:get(M,X))||X<-[ep(R),en(R)]],C).
 
 
@@ -51,7 +52,7 @@ up(C)     -> C#cur{dir=prev}.
 fix({ok,O})      -> O;
 fix({ok,O})      -> O;
 fix(_)           -> [].
 fix(_)           -> [].
 
 
-lookup({ok,R},C) -> C#cur{id=el(2,R),val=R};
+lookup({ok,R},C) -> C#cur{val=R};
 lookup(X,C)      -> X.
 lookup(X,C)      -> X.
 
 
 take(_,_,{error,_},R)     -> lists:flatten(R);
 take(_,_,{error,_},R)     -> lists:flatten(R);