24#ifndef VARIANT_SYMBOL_UTILS_H
25#define VARIANT_SYMBOL_UTILS_H
A logical library item identifier and consists of various portions much like a URI.
Define a library symbol object.
Value keys and the key session of the schematic connectivity engine.
wxString pinNumber
pin that failed, if applicable
int bodyStyle
body style that failed, if applicable
int unit
unit that failed, if applicable
VARIANT_COMPAT_ERROR error
std::function< std::vector< VARIANT_COMPAT_RESULT >(const LIB_ID &)> SYMBOL_COMPAT_FUNC
Callback that evaluates variant symbol compatibility for a given candidate LIB_ID.
std::vector< VARIANT_COMPAT_RESULT > ValidateVariantSymbolCompatibility(const LIB_SYMBOL &aBase, const LIB_SYMBOL &aCandidate)
Check whether aCandidate can be used as a variant symbol override for aBase.
VARIANT_COMPAT_ERROR
Describes a single pin compatibility problem found when comparing a candidate symbol against a base s...
@ PIN_POSITION_MISMATCH
A matching pin number has a different position in library coordinates.
@ PIN_TYPE_MISMATCH
A matching pin number has a different electrical type.
@ EXTRA_PIN_NUMBER
Candidate has a pin occurrence that is absent from the base.
@ MISSING_BODY_STYLE
Base uses alternate body styles but candidate does not.
@ MISSING_PIN_NUMBER
A base pin number is absent from the candidate for a given unit/body style.
@ INSUFFICIENT_UNITS
Candidate has fewer units than the base.
bool VariantSymbolPinsMatch(const SCH_PIN &aBase, const SCH_PIN &aCandidate)
Check whether two graphical pins occupy the same variant-symbol connection slot.