C bindings: typedef struct conflicts with method

Rikki Cattermole via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Jul 20 23:07:07 PDT 2015


On 21/07/2015 5:53 p.m., yawniek wrote:
> i tried to automagically create bindings for librdkafka
> (https://github.com/edenhill/librdkafka)
> with dstep.
>
> now the code contains typedefs structs with the same name as methods:
>
> ```
> typedef struct rd_kafka_metadata {
>          int         broker_cnt;     /* Number of brokers in 'brokers' */
>          struct rd_kafka_metadata_broker *brokers;  /* Brokers */
>
>          int         topic_cnt;      /* Number of topics in 'topics' */
>          struct rd_kafka_metadata_topic *topics;    /* Topics */
>
>          int32_t     orig_broker_id; /* Broker originating this metadata */
>          char       *orig_broker_name; /* Name of originating broker */
> } rd_kafka_metadata_t;
>
>
> rd_kafka_metadata (rd_kafka_t *rk, int all_topics,
>                     rd_kafka_topic_t *only_rkt,
>                     const struct rd_kafka_metadata **metadatap,
>                     int timeout_ms);
> ```
>
> what the correct way to bind these?

The c function matters. The struct's two names do not. Just use the 
struct's _t name.


More information about the Digitalmars-d-learn mailing list