X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Fagar%2Ftest%2Fchain.c;fp=ccan%2Fagar%2Ftest%2Fchain.c;h=e563deab984fe12a82c75f7cccf2fe7e30d03b5d;hb=c2966d1879c825cfaf0e7d6848a5da052ee4a038;hp=0000000000000000000000000000000000000000;hpb=06162212353c882249d7e207756ea81ea645fc30;p=ccan diff --git a/ccan/agar/test/chain.c b/ccan/agar/test/chain.c new file mode 100644 index 00000000..e563deab --- /dev/null +++ b/ccan/agar/test/chain.c @@ -0,0 +1,30 @@ +#include "config.h" + +#include + +#include +#include + +#include + +#include "simple-graphr.h" + +static int chain_edge_info_r(const struct agar_graph *gr, + const void *nr, const void *e, + struct agar_edge_info *eir) +{ + int fromi = ptr2int(nr); + int toi = ptr2int(e); + + if ((toi == fromi + 1) || (fromi == toi + 1)) + eir->to = int2ptr(toi); + + return 0; +} + +void chain_graphr_init(struct chain_graphr *cgr, int nnodes) +{ + cgr->fgr.nnodes = nnodes; + agar_init_graph(&cgr->fgr.gr, full_first_edge_r, full_next_edge_r, + chain_edge_info_r); +}