# OdwetaLibC I got bored with having to use complicated checking and stuff when working with files and arrays in C, so I implemented a new `file_t` struct which can load the contents of a file into a dynamically allocated array (yes, there is an implementation of those here as well... (`vector_t` struct)). The struct also stores the number of lines the file has. Also, I managed to come up with an implementation of a kind-of-Python-like list (a vector of vectors of any type interpreted as just one vector). Quite handy, I'd say. The `list_t` struct is what you want to use when working with lists. The difference between a `vector_t` and a `list_t` is that a vector can only be of one type, whereas a list can have values of any type inside it (in this context, any means types defined in this library and default types in C). Examples of this work of art are in the `/examples/` directory of this repo. ## Files #### What works so far: 1. Reading files into a 2D vector 2. Converting a file into a string #### TODO: 1. File writing logic 2. File appending logic 3. Copy a file to another file 4. Move a file to another file 5. Rename a file 6. Delete a file? 8. Add line numbers at the beggining of each line in a file + You tell me ## Vectors (dynamic arrays) #### What works so far: 1. Dynamically allocated arrays (vectors) 2. Converting a vector into a string (has to be a `char` vector) 3. Popping the last value of a vector and returning it 4. Getting and setting a value of a vector on a given index 5. Pushing a value at the end of a vector 6. Inserting a value into a vector at a given index 7. Insertion of a vector into another vector #### TODO: 1. Removing an element at a given index 2. Vectors of lists 3. Remove a value at a given index + You tell me ## Lists (vectors with dynamic types) #### What works so far: + Creating a list + Pushing into a list + Printing a list + Popping the last value of a list + Cleanup of a list + Vectors inside of a list #### TODO: 1. Inserting at a given index 2. Verify multi-dimensional lists working - lists of lists 3. Get/set at a given index 4. Remove at a given index ## Installation `git clone https://gitlab.com/Odweta/odwetalibc.git && cd odwetalibc && make install` #### Run demo (the library has to be installed with `make install`) `make && ./demo`