summaryrefslogtreecommitdiff |
diff options
author | nsensfel <SpamShield0@noot-noot.org> | 2019-04-26 17:45:48 +0200 |
---|---|---|
committer | nsensfel <SpamShield0@noot-noot.org> | 2019-04-26 17:45:48 +0200 |
commit | a7c6455285cfd3a671078be4e58df0afae07bf0c (patch) | |
tree | b06531c2423e0fa6a1f60ace83b5e03a40067262 /src/roster/struct/rst_roster.erl | |
parent | ec6eec260d6383ae948505c3d42b3055ae3dd94c (diff) |
...
Diffstat (limited to 'src/roster/struct/rst_roster.erl')
-rw-r--r-- | src/roster/struct/rst_roster.erl | 75 |
1 files changed, 68 insertions, 7 deletions
diff --git a/src/roster/struct/rst_roster.erl b/src/roster/struct/rst_roster.erl index 90b2f98..ec28db0 100644 --- a/src/roster/struct/rst_roster.erl +++ b/src/roster/struct/rst_roster.erl @@ -10,7 +10,8 @@ roster, { owner :: binary(), - characters :: orddict:orddict(non_neg_integer(), rst_character:type()) + characters :: + orddict:orddict(non_neg_integer(), shr_character:unresolved()) } ). @@ -30,7 +31,13 @@ get_character/2, set_characters/2, - set_character/3 + set_character/3, + + ataxia_set_characters/2, + ataxia_set_characters/3, + + ataxia_set_character/3, + ataxia_set_character/4 ] ). @@ -63,24 +70,50 @@ get_owner (Roster) -> Roster#roster.owner. ( type() ) - -> orddict:orddict(non_neg_integer(), rst_character:type()). + -> orddict:orddict(non_neg_integer(), shr_character:unresolved()). get_characters (Roster) -> Roster#roster.characters. --spec get_character (non_neg_integer(), type()) -> rst_character:type(). +-spec get_character (non_neg_integer(), type()) -> shr_character:unresolved(). get_character (IX, Roster) -> orddict:fetch(IX, Roster#roster.characters). -spec set_characters ( - orddict:orddict(non_neg_integer(), rst_character:type()), + orddict:orddict(non_neg_integer(), shr_character:unresolved()), type() ) -> type(). set_characters (Characters, Roster) -> Roster#roster{ characters = Characters }. +-spec ataxia_set_characters + ( + orddict:orddict(non_neg_integer(), shr_character:unresolved()), + type() + ) + -> {type(), ataxic:basic()}. +ataxia_set_characters (Characters, Roster) -> + ataxia_set_characters(Characters, ataxic:constant(Characters), Roster). + +-spec ataxia_set_characters + ( + orddict:orddict(non_neg_integer(), shr_character:unresolved()), + ataxic:basic(), + type() + ) + -> {type(), ataxic:basic()}. +ataxia_set_characters (Characters, CharactersAtaxiaUpdate, Roster) -> + { + set_characters(Characters, Roster), + ataxic:update_field + ( + get_characters_field(), + CharactersAtaxiaUpdate + ) + }. + -spec set_character ( non_neg_integer(), - rst_character:type(), + shr_character:unresolved(), type() ) -> type(). @@ -90,12 +123,40 @@ set_character (IX, Character, Roster) -> characters = orddict:store(IX, Character, Roster#roster.characters) }. +-spec ataxia_set_character + ( + non_neg_integer(), + shr_character:unresolved(), + type() + ) + -> {type(), ataxic:basic()}. +ataxia_set_character (IX, Character, Roster) -> + ataxia_set_character(IX, Character, ataxic:constant(Character), Roster). + +-spec ataxia_set_character + ( + non_neg_integer(), + shr_character:unresolved(), + ataxic:basic(), + type() + ) + -> {type(), ataxic:basic()}. +ataxia_set_character (IX, Character, CharacterAtaxiaUpdate, Roster) -> + { + ataxia_set_character(IX, Character, Roster), + ataxic:update_field + ( + get_characters_field(), + ataxic_sugar:update_orddict_element(IX, CharacterAtaxiaUpdate) + ) + }. + -spec get_characters_field () -> non_neg_integer(). get_characters_field () -> #roster.characters. -spec new (binary()) -> type(). new (Owner) -> - NewChar = rst_character:new(), + NewChar = shr_character:new(), #roster { owner = Owner, |