1.0.1 • Published 2 years ago

nv-facutil-simple-slots v1.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

nv-facutil-simple-slots

  • just a array of fixed size, start from 1

install

  • npm install nv-facutil-simple-slots

usage

   const {
       DFLT_IS_EMPTY,
       _get_usable,
       simple_get_usable_with_slots,
       creat_simple_slots,
       load_from_ary
   } = require("nv-facutil-simple-slots");

example

            var slots = creat_simple_slots(5);

            > slots
            SimpleSlots(6) [
              _SimpleHead(4) [ 5, undefined, 5, 1 ],
              <5 empty items>
            ]
            > 


            > slots.used_
            0
            > slots.lefted_
            5
            > slots.maxid_
            5
            > slots.empty_  === undefined
            true
            > 


            > slots.rent_slot_and_set(999)
            1
            > slots
            SimpleSlots(6) [
              _SimpleHead(4) [ 5, undefined, 4, 2 ],
              999,
              undefined,
              undefined,
              undefined,
              undefined
            ]
            > slots.rent_slot_and_set(888)
            2
            > slots.rent_slot_and_set(777)
            3
            > slots.rent_slot_and_set(666)
            4
            > slots.rent_slot_and_set(555)
            5
            > slots.rent_slot_and_set(444)
            0
            > slots.rent_slot_and_set(333)
            0
            > slots
            SimpleSlots(6) [
              _SimpleHead(4) [ 5, undefined, 0, 6 ],
              999,
              888,
              777,
              666,
              555
            ]
            > 

            > slots.take_and_rtrn_slot_at(3)
            777
            > slots
            SimpleSlots(6) [
              _SimpleHead(4) [ 5, undefined, 1, 1 ],
              999,
              888,
              undefined,
              666,
              555
            ]
            > 

            > slots.take_and_rtrn_slot_at(5)
            555
            > slots
            SimpleSlots(6) [
              _SimpleHead(4) [ 5, undefined, 2, 1 ],
              999,
              888,
              undefined,
              666,
              undefined
            ]
            > 

            > slots.rent_slot_and_set(444)
            3
            > slots
            SimpleSlots(6) [
              _SimpleHead(4) [ 5, undefined, 1, 4 ],
              999,
              888,
              444,
              666,
              undefined
            ]
            > 


            > slots.take_and_rtrn_slot_at(1)
            999
            > slots
            SimpleSlots(6) [
              _SimpleHead(4) [ 5, undefined, 2, 4 ],
              undefined,
              888,
              444,
              666,
              undefined
            ]
            > 

            > slots.used_
            3
            > 

            > slots
            SimpleSlots(6) [
              _SimpleHead(4) [ 5, undefined, 2, 4 ],
              888,
              444,
              666,
              undefined,
              undefined
            ]>

APIS

  • _get_usable = (ctx,slots,curr_id,min_id,max_id,is_empty)=> id@number,nid@number
  • simple_get_usable_with_slots = (slots,curr_id,is_empty=DFLT_IS_EMPTY)=> id@number,nid@number
  • creat_simple_slots = (max_id,empty=undefined,init_val=null)=>SimpleSlots
  • load_from_ary = (ary,empty=undefined)=>SimpleSlots

METHODS

 slots._is_slot_empty          slots._rent_slot_and_set      slots._take_and_rtrn_slot_at  slots.constructor
 slots.curr_                   slots.empty_                  slots.is_slot_empty           slots.lefted_
 slots.maxid_                  slots.rent_slot_and_set       slots.take_and_rtrn_slot_at   slots.used_        
 slots.defrag
 slots.dump

LICENSE

  • ISC