CRU_BUILDER (7)
CRU MANUAL
CRU_BUILDER (7)

NAME

cru_builder - graph building specification for the cru library

SYNOPSIS

#include <cru/cru.h>

typedef struct cru_builder_s
{
   void *attribute;
   cru_connector connector;
   cru_subconnector subconnector;
   struct cru_sig_s bu_sig;
} *cru_builder;

DESCRIPTION

This structure parameterizes the cru_built library function with necessary information initialized by the application to build a graph. The attribute field optionally contains or points to unspecified user-defined data that can be accessed while the graph is being built by the connector or subconnector function calling cru_get. Exactly one connector or subconnector must be specified, following their usual calling conventions. If the application opts for dynamically allocated vertices or edges in the graph rather than scalar values, then the corresponding orderings and destructors must be specified in the bu_sig field per convention. Otherwise, it may be omitted or zero-filled.

ERRORS

These errors are reportable for the following reasons by the cru_built function given an invalid cru_builder structure.

CRU_UNDCON

Neither a connector nor a subconnector is defined.

CRU_INCCON

Both a connector and a subconnector are defined.

CRU_UNDHSH

No hash function is defined or inferrable for vertices, edges, or both.

CRU_UNDEQU

No equality relational predicate is defined or inferrable for vertices, edges, or both.

CRU_INCVEL

The vertex equality relational predicate is not reflexive.

Non-reflexive equality is not always detected but is always an error.

FILES

/usr/local/include/cru/data_types.h

/usr/local/include/cru/function_types.h

/usr/local/include/cru/error_codes.h

SEE ALSO

cru, cru_bop, cru_bpred, cru_built, cru_cbop, cru_classifier, cru_class_of, cru_class_size, cru_composed, cru_composer, cru_connect, cru_connector, cru_cqop, cru_crossed, cru_crosser, cru_ctop, cru_ctop_pair, cru_ctop_quad, cru_data_types, cru_deduplicated, cru_destructor, cru_destructor_pair, cru_edge_count, cru_fabricated, cru_fabricator, cru_filter, cru_filtered, cru_fold, cru_free_kill_switch, cru_free_later, cru_free_now, cru_free_partition, cru_function_types, cru_get, cru_hash, cru_induced, cru_inducer, cru_kernel, cru_kill, cru_killed, cru_mapreduced, cru_mapreducer, cru_merged, cru_merger, cru_mutated, cru_mutator, cru_new_kill_switch, cru_nop, cru_order, cru_order_pair, cru_partition_of, cru_plan, cru_postponed, cru_postponer, cru_prop, cru_prop_pair, cru_pruner, cru_qop, cru_qpred, cru_set, cru_sig, cru_singleton, cru_split, cru_splitter, cru_spread, cru_strerror, cru_stretch, cru_stretched, cru_stretcher, cru_subconnector, cru_terminus_count, cru_top, cru_tpred, cru_united, cru_uop, cru_vertex_count, cru_zone

AUTHOR

Dennis Furey (milonga@delayinsensitive.com)

PROJECT PAGE

https://github.com/gueststar/cru

CRU VERSION 0.15.3
October 05, 2024
CRU_BUILDER (7)