cvx
Loading...
Searching...
No Matches
slinked_list.h File Reference

Go to the source code of this file.

Data Structures

struct  cvx_container
 
struct  slinked_list_vtabv
 
struct  slinked_list_node
 
struct  slinked_list
 
struct  slinked_list_iter
 

Typedefs

typedef struct cvx_container cvx_container
 

Enumerations

enum  cvx_flags {
  CVX_FLAG_OK = 0 , CVX_FLAG_VTAB = 1 , CVX_FLAG_WRONG_TAG = 2 , CVX_FLAG_ALLOC = 3 ,
  CVX_FLAG_EMPTY = 4 , CVX_FLAG_FULL = 5 , CVX_FLAG_RANGE = 6 , CVX_FLAG_NOT_FOUND = 7 ,
  CVX_FLAG_INVALID = 8 , CVX_FLAG_DUPLICATE = 9 , CVX_FLAG_ERROR = 10
}
 slinked_list.h More...
 
enum  cvx_heap_order { CVX_MAX_HEAP = 1 , CVX_MIN_HEAP = -1 }
 enum cvx_heap_order More...
 

Functions

void sl_init (struct slinked_list *self, struct slinked_list_vtabv *vtabv)
 
void sl_drop (struct slinked_list *_self_)
 
void sl_clone (struct slinked_list *orig, struct slinked_list *clone)
 
size_t sl_count (struct slinked_list *_self_)
 
_Bool sl_empty (struct slinked_list *_self_)
 
TVal sl_front (struct slinked_list *_self_)
 
TVal sl_back (struct slinked_list *_self_)
 
TVal sl_get (struct slinked_list *_self_, size_t _index_)
 
void sl_push_front (struct slinked_list *_self_, TVal _item_)
 
void sl_push_back (struct slinked_list *_self_, TVal _item_)
 
void sl_push_at (struct slinked_list *_self_, TVal _item_, size_t _index_)
 
TVal sl_pop_front (struct slinked_list *_self_)
 
TVal sl_pop_back (struct slinked_list *_self_)
 
TVal sl_pop_at (struct slinked_list *_self_, size_t _index_)
 
TVal sl_replace_front (struct slinked_list *_self_, TVal _new_)
 
TVal sl_replace_back (struct slinked_list *_self_, TVal _new_)
 
struct slinked_list_iter sl_iter_init_start (struct slinked_list *_target_)
 ITERATOR.
 
struct slinked_list_itersl_iter_start (struct slinked_list *_target_)
 
void sl_iter_drop (struct slinked_list_iter *_iter_)
 
_Bool sl_iter_at_start (struct slinked_list_iter *_iter_)
 
_Bool sl_iter_at_end (struct slinked_list_iter *_iter_)
 
size_t sl_iter_count (struct slinked_list_iter *_iter_)
 
void sl_iter_to_start (struct slinked_list_iter *_iter_)
 
void sl_iter_to_end (struct slinked_list_iter *_iter_)
 
void sl_iter_next (struct slinked_list_iter *_iter_)
 
void sl_iter_forward (struct slinked_list_iter *_iter_, size_t _steps_)
 
TVal sl_iter_value (struct slinked_list_iter *_iter_)
 
size_t sl_iter_index (struct slinked_list_iter *_iter_)
 
void sl__proxy_clone (cvx_container *_orig_, cvx_container *_clone_)
 PROXIES.
 
void sl__proxy_drop (cvx_container *_col_)
 
size_t sl__proxy_count (cvx_container *_col_)
 
_Bool sl__proxy_empty (cvx_container *_col_)
 
TVal sl__proxy_front (cvx_container *_col_)
 
TVal sl__proxy_back (cvx_container *_col_)
 
TVal sl__proxy_get (cvx_container *_col_, size_t _index_)
 
void sl__proxy_push_front (cvx_container *_col_, TVal _item_)
 
void sl__proxy_push_back (cvx_container *_col_, TVal _item_)
 
void sl__proxy_push_at (cvx_container *_col_, TVal _item_, size_t _index_)
 
TVal sl__proxy_pop_front (cvx_container *_col_)
 
TVal sl__proxy_pop_back (cvx_container *_col_)
 
TVal sl__proxy_pop_at (cvx_container *_col_, size_t _index_)
 
TVal sl__proxy_replace_front (cvx_container *_col_, TVal _new_)
 
TVal sl__proxy_replace_back (cvx_container *_col_, TVal _new_)
 
cvx_containersl__proxy_iter_start (cvx_container *_col_)
 
void sl__proxy_iter_drop (cvx_container *_col_)
 
_Bool sl__proxy_iter_at_start (cvx_container *_col_)
 
_Bool sl__proxy_iter_at_end (cvx_container *_col_)
 
size_t sl__proxy_iter_count (cvx_container *_col_)
 
void sl__proxy_iter_to_start (cvx_container *_col_)
 
void sl__proxy_iter_to_end (cvx_container *_col_)
 
void sl__proxy_iter_next (cvx_container *_col_)
 
void sl__proxy_iter_forward (cvx_container *_col_, size_t _steps_)
 
TVal sl__proxy_iter_value (cvx_container *_col_)
 
size_t sl__proxy_iter_index (cvx_container *_col_)
 

Typedef Documentation

◆ cvx_container

typedef struct cvx_container cvx_container

Enumeration Type Documentation

◆ cvx_flags

enum cvx_flags

slinked_list.h

interval_set.h

Status

[x] concept [x] v1 [ ] tests [ ] refine [ ] stabilize

Status and error flags for the CVX library.

Error Handling

Enumerator
CVX_FLAG_OK 

No errors.

CVX_FLAG_VTAB 

Required vtab function was not provided.

CVX_FLAG_WRONG_TAG 

Tags are checked so you don't pass the wrong struct to a function.

CVX_FLAG_ALLOC 

Allocation failed.

CVX_FLAG_EMPTY 

Operation can not proceed because the container is empty.

CVX_FLAG_FULL 

When a container that doesn't resize is full.

CVX_FLAG_RANGE 

Index out of range.

CVX_FLAG_NOT_FOUND 

Key or value not found.

CVX_FLAG_INVALID 

Invalid argument or operation.

CVX_FLAG_DUPLICATE 

Duplicate key or value.

CVX_FLAG_ERROR 

Generic error, or unknown error.

◆ cvx_heap_order

enum cvx_heap_order

Defines the two possible heaps:

  • Max Heap has the greatest element at the top
  • Min Heap has the smallest element at the top
Enumerator
CVX_MAX_HEAP 
CVX_MIN_HEAP 

Function Documentation

◆ sl__proxy_back()

TVal sl__proxy_back ( cvx_container _col_)

◆ sl__proxy_clone()

void sl__proxy_clone ( cvx_container _orig_,
cvx_container _clone_ 
)

PROXIES.

◆ sl__proxy_count()

size_t sl__proxy_count ( cvx_container _col_)

◆ sl__proxy_drop()

void sl__proxy_drop ( cvx_container _col_)

◆ sl__proxy_empty()

_Bool sl__proxy_empty ( cvx_container _col_)

◆ sl__proxy_front()

TVal sl__proxy_front ( cvx_container _col_)

◆ sl__proxy_get()

TVal sl__proxy_get ( cvx_container _col_,
size_t  _index_ 
)

◆ sl__proxy_iter_at_end()

_Bool sl__proxy_iter_at_end ( cvx_container _col_)

◆ sl__proxy_iter_at_start()

_Bool sl__proxy_iter_at_start ( cvx_container _col_)

◆ sl__proxy_iter_count()

size_t sl__proxy_iter_count ( cvx_container _col_)

◆ sl__proxy_iter_drop()

void sl__proxy_iter_drop ( cvx_container _col_)

◆ sl__proxy_iter_forward()

void sl__proxy_iter_forward ( cvx_container _col_,
size_t  _steps_ 
)

◆ sl__proxy_iter_index()

size_t sl__proxy_iter_index ( cvx_container _col_)

◆ sl__proxy_iter_next()

void sl__proxy_iter_next ( cvx_container _col_)

◆ sl__proxy_iter_start()

cvx_container * sl__proxy_iter_start ( cvx_container _col_)

◆ sl__proxy_iter_to_end()

void sl__proxy_iter_to_end ( cvx_container _col_)

◆ sl__proxy_iter_to_start()

void sl__proxy_iter_to_start ( cvx_container _col_)

◆ sl__proxy_iter_value()

TVal sl__proxy_iter_value ( cvx_container _col_)

◆ sl__proxy_pop_at()

TVal sl__proxy_pop_at ( cvx_container _col_,
size_t  _index_ 
)

◆ sl__proxy_pop_back()

TVal sl__proxy_pop_back ( cvx_container _col_)

◆ sl__proxy_pop_front()

TVal sl__proxy_pop_front ( cvx_container _col_)

◆ sl__proxy_push_at()

void sl__proxy_push_at ( cvx_container _col_,
TVal  _item_,
size_t  _index_ 
)

◆ sl__proxy_push_back()

void sl__proxy_push_back ( cvx_container _col_,
TVal  _item_ 
)

◆ sl__proxy_push_front()

void sl__proxy_push_front ( cvx_container _col_,
TVal  _item_ 
)

◆ sl__proxy_replace_back()

TVal sl__proxy_replace_back ( cvx_container _col_,
TVal  _new_ 
)

◆ sl__proxy_replace_front()

TVal sl__proxy_replace_front ( cvx_container _col_,
TVal  _new_ 
)

◆ sl_back()

TVal sl_back ( struct slinked_list _self_)

◆ sl_clone()

void sl_clone ( struct slinked_list orig,
struct slinked_list clone 
)

◆ sl_count()

size_t sl_count ( struct slinked_list _self_)

◆ sl_drop()

void sl_drop ( struct slinked_list _self_)

◆ sl_empty()

_Bool sl_empty ( struct slinked_list _self_)

◆ sl_front()

TVal sl_front ( struct slinked_list _self_)

◆ sl_get()

TVal sl_get ( struct slinked_list _self_,
size_t  _index_ 
)

◆ sl_init()

void sl_init ( struct slinked_list self,
struct slinked_list_vtabv vtabv 
)

◆ sl_iter_at_end()

_Bool sl_iter_at_end ( struct slinked_list_iter _iter_)

◆ sl_iter_at_start()

_Bool sl_iter_at_start ( struct slinked_list_iter _iter_)

◆ sl_iter_count()

size_t sl_iter_count ( struct slinked_list_iter _iter_)

◆ sl_iter_drop()

void sl_iter_drop ( struct slinked_list_iter _iter_)

◆ sl_iter_forward()

void sl_iter_forward ( struct slinked_list_iter _iter_,
size_t  _steps_ 
)

◆ sl_iter_index()

size_t sl_iter_index ( struct slinked_list_iter _iter_)

◆ sl_iter_init_start()

struct slinked_list_iter sl_iter_init_start ( struct slinked_list _target_)

ITERATOR.

◆ sl_iter_next()

void sl_iter_next ( struct slinked_list_iter _iter_)

◆ sl_iter_start()

struct slinked_list_iter * sl_iter_start ( struct slinked_list _target_)

◆ sl_iter_to_end()

void sl_iter_to_end ( struct slinked_list_iter _iter_)

◆ sl_iter_to_start()

void sl_iter_to_start ( struct slinked_list_iter _iter_)

◆ sl_iter_value()

TVal sl_iter_value ( struct slinked_list_iter _iter_)

◆ sl_pop_at()

TVal sl_pop_at ( struct slinked_list _self_,
size_t  _index_ 
)

◆ sl_pop_back()

TVal sl_pop_back ( struct slinked_list _self_)

◆ sl_pop_front()

TVal sl_pop_front ( struct slinked_list _self_)

◆ sl_push_at()

void sl_push_at ( struct slinked_list _self_,
TVal  _item_,
size_t  _index_ 
)

◆ sl_push_back()

void sl_push_back ( struct slinked_list _self_,
TVal  _item_ 
)

◆ sl_push_front()

void sl_push_front ( struct slinked_list _self_,
TVal  _item_ 
)

◆ sl_replace_back()

TVal sl_replace_back ( struct slinked_list _self_,
TVal  _new_ 
)

◆ sl_replace_front()

TVal sl_replace_front ( struct slinked_list _self_,
TVal  _new_ 
)