{"schema_version":1,"metadata":{"branch":"release","release":"7.9","architecture":"amd64","generated_at":"2026-09-09T04:04:02.361425+00:00","source_url":"https://cdn.openbsd.org/pub/OpenBSD/7.9/packages/amd64/sqlports-7.54.tgz","source_sha256":"2de00144847bf9da3a365be982f101dbb55d591ed7a915ea94984a16ab0e0404","package_count":12059,"source_kind":"sqlports"},"package":{"name":"tllist-1.1.0","path":"devel/tllist","url":"/packages/release/devel/tllist/","comment":"Typed Linked List C header file only","homepage":"","maintainer":"The OpenBSD ports mailing-list <ports@openbsd.org>","description":"tllis is a **T**yped **L**inked **L**ist C header file only\nlibrary implemented using pre-processor macros.\n\n## Description\n\nMost C implementations of linked list are untyped. That is, their data\ncarriers are typically `void *`. This is error prone since your\ncompiler will not be able to help you correct your mistakes (_oh, was\nit a pointer-to-a-pointer... I thought it was just a pointer..._).\n\n**tllist** addresses this by using pre-processor macros to implement\ndynamic types, where the data carrier is typed to whatever you want;\nboth **primitive** data types are supported as well as aggregated ones\nsuch as **structs**, **enums** and **unions**.\n\nBeing a double-linked list, most operations are constant in time\n(including pushing and popping both to/from front and back).\n\n","package_architecture":"amd64","stem":"tllist","readme":null,"dependencies":[{"path":"devel/meson","type":"build","package_spec":"STEM->=1.10.2v0","url":"/packages/release/devel/meson/"}],"reverse_dependencies":{"count":3,"url":"/packages/data/d4/d47a5e1895ea6a78f99913c689090b84bd401545e96e697804db4798fe2b9adf.json"},"categories":["devel"],"flavors":[],"only_for_architectures":[],"not_for_architectures":[]}}
