Agent Skills: Vtable Pattern (C-Specific)

Vtable Pattern (C-Specific) pattern for C development

UncategorizedID: mgreenly/ikigai/patterns/vtable

Install this agent skill to your local

pnpm dlx add-skill https://github.com/mgreenly/ikigai/tree/HEAD/.claude/library/patterns/vtable

Skill Files

Browse the full folder contents for patterns/vtable.

Download Skill

Loading file tree…

.claude/library/patterns/vtable/SKILL.md

Skill Metadata

Name
patterns/vtable
Description
Vtable Pattern (C-Specific) pattern for C development

Vtable Pattern (C-Specific)

Struct of function pointers enabling polymorphism. Different implementations provide different function pointer sets. Callers invoke through vtable.

ikigai Application

LLM providers:

typedef struct {
    res_t (*send)(void *impl, ...);
    res_t (*stream)(void *impl, ...);
    void (*cleanup)(void *impl);
} ik_provider_vtable_t;

typedef struct {
    ik_provider_vtable_t *vt;
    void *impl;  // OpenAI ctx, Anthropic ctx, etc.
} ik_llm_client_t;

Layer system: Each layer type provides render/resize functions.

Benefits:

  • Runtime polymorphism without inheritance
  • Swap implementations transparently
  • Mock implementations for testing

Convention: Vtable struct named *_vtable_t, instance holds vt pointer plus impl context.