ffi library
Raw FFI surface for the official Taiyin extension packages
(package:ephemeris_bazi, package:ephemeris_ziwei).
This library exposes the generated bindings and the interop helpers the
extension packages need to share core contexts and load their own native
modules. Its shape tracks the native ABI and may change without a major
version bump of package:ephemeris; application code should prefer
package:ephemeris/ephemeris.dart.
Classes
- taiyin_aberration_model_id
- taiyin_angular_separation_result
- taiyin_apparent_config
- taiyin_apparent_deflector
- taiyin_apparent_flags
- taiyin_apparent_frame_id
- taiyin_apparent_position
- taiyin_astro_model_config
- taiyin_astrology_target_id
- taiyin_atmosphere
- taiyin_atmosphere_policy_flags
- taiyin_ayanamsha_id
- taiyin_bazi_branch_relation_flags
- taiyin_bazi_branch_triple_relation_flags
- taiyin_bazi_chart
- taiyin_bazi_context
- taiyin_bazi_context_config
- taiyin_bazi_dayun
- taiyin_bazi_dayun_boundary_model
- taiyin_bazi_earth_palace_mode
- taiyin_bazi_gender
- taiyin_bazi_qiyun_direction_mode
- taiyin_bazi_qiyun_result
- taiyin_bazi_qiyun_time_model
- taiyin_bazi_relation
- taiyin_bazi_relation_kind
- taiyin_bazi_relation_pillar_flags
- taiyin_bazi_renyuan_siling_origin_kind
- taiyin_bazi_renyuan_siling_result
- taiyin_bazi_renyuan_siling_segment
- taiyin_bazi_renyuan_siling_table_model
- taiyin_bazi_renyuan_siling_time_model
- taiyin_bazi_shen_sha_id
- taiyin_bazi_shen_sha_target_kind
- taiyin_bazi_stem_relation_flags
- taiyin_bazi_wuxing
- taiyin_bazi_xiaoyun
- taiyin_body_apsis_kind
- taiyin_body_apsis_search_result
- taiyin_body_id
- taiyin_body_node_kind
- taiyin_body_node_search_result
- taiyin_body_orbit_reference_point
- taiyin_body_orbit_reference_points
- taiyin_body_osculating_orbit
- taiyin_body_phenomena
- taiyin_body_star_angular_separation_result
- taiyin_calendar_datetime
- taiyin_capability
- taiyin_cartesian_state
- taiyin_chinese_calendar_config
- taiyin_chinese_calendar_context
- taiyin_chinese_calendar_day_boundary_mode
- taiyin_chinese_calendar_mode
- taiyin_chinese_calendar_month
- taiyin_chinese_calendar_month_name
- taiyin_chinese_calendar_year
- taiyin_chinese_new_moon_event
- taiyin_chinese_solar_term_event
- taiyin_context
- taiyin_deflection_model_id
- taiyin_delta_t_model_id
- taiyin_eclipse_kind_flags
- taiyin_eclipse_moon_radius_model_id
- taiyin_eclipse_shadow_model_id
- taiyin_ephemeris_diagnostic
- taiyin_ephemeris_family_id
- taiyin_equation_of_time_result
- taiyin_estimated_time_scales
- taiyin_frame_route_id
- taiyin_ganzhi_four_pillars
- taiyin_ganzhi_pillar_historical_mode
- taiyin_ganzhi_rat_hour_mode
- taiyin_ganzhi_wuxing
- taiyin_greatest_elongation_kind
- taiyin_greatest_elongation_result
- taiyin_heliacal_event_kind
- taiyin_heliacal_visibility_conditions
- taiyin_heliacal_visibility_model_id
- taiyin_heliacal_visibility_result
- taiyin_heliacal_visibility_search_result
- taiyin_horizontal_coordinates
- taiyin_horizontal_rates
- taiyin_house_position_result
- taiyin_house_result
- taiyin_house_result_flags
- taiyin_house_system_dispatch_data
- taiyin_house_system_id
- taiyin_local_lunar_eclipse_result_tt
- taiyin_local_lunar_eclipse_result_ut
- taiyin_local_solar_eclipse_boundary
- taiyin_local_solar_eclipse_circumstances_tt
- taiyin_local_solar_eclipse_circumstances_ut
- taiyin_local_solar_eclipse_result_tt
- taiyin_local_solar_eclipse_result_ut
- taiyin_local_solar_transit_result
- taiyin_lunar_apsis_definition
- taiyin_lunar_apsis_position
- taiyin_lunar_date
- taiyin_lunar_eclipse_result_tt
- taiyin_lunar_eclipse_result_ut
- taiyin_lunar_node_kind
- taiyin_lunar_node_position
- taiyin_lunar_occultation_local_visibility
- taiyin_lunar_occultation_path_point
- taiyin_lunar_occultation_phenomena
- taiyin_lunar_occultation_result
- taiyin_lunar_occultation_visibility_interval
- taiyin_lunar_occultation_visibility_sample
- taiyin_lunar_occultation_where_result
- taiyin_model_selection_id
- taiyin_nutation_model_id
- taiyin_observed_flags
- taiyin_observed_position
- taiyin_observer_location
- taiyin_occultation_kind
- taiyin_occultation_type_flags
- taiyin_occultation_visibility_flags
- taiyin_occultation_visibility_sample_flags
- taiyin_position_flags
- taiyin_precession_model_id
- taiyin_precise_time_scales
- taiyin_refraction_model_id
- taiyin_result_flag
- taiyin_runtime_config
- taiyin_runtime_data_source_flags
- taiyin_runtime_data_source_format
- taiyin_runtime_data_source_kind
- taiyin_runtime_registered_data_source
- taiyin_sidereal_coordinate_frame
- taiyin_sidereal_coordinates
- taiyin_sidereal_position
- taiyin_solar_besselian_elements
- taiyin_solar_besselian_polynomial
- taiyin_solar_date
- taiyin_solar_eclipse_path_point
- taiyin_solar_eclipse_result_tt
- taiyin_solar_eclipse_result_ut
- taiyin_solar_eclipse_route_curve_point
- taiyin_solar_eclipse_route_product_point
- taiyin_solar_eclipse_route_product_summary
- taiyin_solar_eclipse_route_row
- taiyin_solar_eclipse_where
- taiyin_solar_rise_set_fast_result
- taiyin_solar_route_curve_kind
- taiyin_solar_route_product_flags
- taiyin_solar_transit_fast_result
- taiyin_solar_transit_kind
- taiyin_solar_transit_result
- taiyin_solar_transit_visibility_flags
- taiyin_split_estimated_time_scales
- taiyin_split_julian_date
- taiyin_split_precise_time_scales
- taiyin_status_category
- taiyin_status_code
- taiyin_tdb_model
- taiyin_tdb_model_id
- taiyin_time_scale_diagnostic
- taiyin_time_scale_diagnostic_flags
- taiyin_time_scale_fallback_reason
- taiyin_time_scale_route
- taiyin_vector3
- taiyin_visibility_altitude_state
- taiyin_visibility_crossing_direction
- taiyin_visibility_event_kind
- taiyin_visibility_event_result
- taiyin_visibility_flags
- taiyin_visibility_limb_kind
- taiyin_visibility_twilight_kind
- taiyin_ziwei_birth_options
- taiyin_ziwei_brightness
- taiyin_ziwei_chart
- taiyin_ziwei_chart_mode
- taiyin_ziwei_childhood_strategy
- taiyin_ziwei_context
- taiyin_ziwei_data_catalog
- taiyin_ziwei_flow_level
- taiyin_ziwei_flow_month_palace_strategy
- taiyin_ziwei_flow_options
- taiyin_ziwei_flow_summary
- taiyin_ziwei_gender
- taiyin_ziwei_json_rule_module
- taiyin_ziwei_leap_month_strategy
- taiyin_ziwei_option_component
- taiyin_ziwei_option_override
- taiyin_ziwei_pillar_boundary
- taiyin_ziwei_reverse_candidate
- taiyin_ziwei_reverse_query
- taiyin_ziwei_reverse_request
- taiyin_ziwei_ruleset
- taiyin_ziwei_star_category
- taiyin_ziwei_star_transform_mark
- taiyin_ziwei_transform_set
- TaiyinBindings
- Generated bindings for the Taiyin C ABI.
Constants
- TAIYIN_C_LOCAL_SOLAR_CONTACT_COUNT → const int
- TAIYIN_C_LUNAR_ECLIPSE_CONTACT_COUNT → const int
- TAIYIN_C_OCCULTATION_MAX_VISIBILITY_INTERVALS → const int
- TAIYIN_C_OCCULTATION_WHERE_MAX_PATH_POINTS → const int
- TAIYIN_C_OCCULTATION_WHERE_MAX_POLYGON_POINTS → const int
- TAIYIN_C_SOLAR_BESSELIAN_COEFF_COUNT → const int
- TAIYIN_C_SOLAR_ECLIPSE_CONTACT_COUNT → const int
- taiyinBaziCapability → const int
-
taiyinBaziSymbols
→ const Set<
String> -
BaZi symbols, verified by
package:ephemeris_bazionly when the loaded library advertises the BaZi capability. The symbols do not exist in a build withoutTAIYIN_BUILD_BAZI_EXTENSION=ON, so they must never be looked up otherwise. - taiyinChineseCalendarCapability → const int
- taiyinGanzhiCalendarCapability → const int
-
taiyinRequiredAbi9Symbols
→ const Set<
String> - Symbols required by the ABI-10 native baseline used by this package.
- taiyinSplitTimeCapability → const int
- taiyinSupportedAbiVersion → const int
- taiyinZiweiCapability → const int
-
taiyinZiweiSymbols
→ const Set<
String> -
Ziwei symbols, verified only when the loaded library advertises the Ziwei
capability. The symbols do not exist in a build without
TAIYIN_BUILD_ZIWEI_EXTENSION=ON, so they must never be looked up otherwise.
Functions
-
decodeNativeCallResult(
int rawResult) → DecodedCallResult - Decodes an ABI-10 packed call result or a retained legacy status return.
-
readCalendarDateTime(
taiyin_calendar_datetime value) → AstroDateTime -
Converts a native calendar struct into an AstroDateTime using the same
second rounding the time API applies to
reverseJulianDay. -
readJulianDate<
S extends TimeScale> (taiyin_split_julian_date value) → JulianDate< S> - Reads a split Julian date returned by the C ABI into a JulianDate.
-
validatedNativeArrayCount(
int count, String noun) → int -
Validates a native-required element
countbefore allocating the buffer. -
validatedNativeResultCount(
int count, int capacity) → int -
Validates the element
countreported by a native array fill against thecapacityof the buffer that was passed in. -
validateNativeCalendar(
AstroDateTime value) → void - Validates fields that can narrow at the native calendar ABI boundary.
-
validateNativeFinite(
double value, String name) → void - Requires a finite floating-point value at an FFI boundary.
-
validateNativeInt32(
int value, String name) → void -
Validates a Dart integer before passing it to a native
int32_tfield. -
validateNativeJulianDate<
S extends TimeScale> (JulianDate< S> value) → void - Validates fields that can narrow at the native split-JD ABI boundary.
-
validateNativeSize(
int value, String name) → void -
Validates a non-negative Dart integer before passing it as native
size_t. -
validateNativeUint16(
int value, String name) → void -
Validates a Dart integer before passing it to a native
uint16_tfield. -
validateNativeUint32(
int value, String name) → void -
Validates a Dart integer before passing it to a native
uint32_tfield. -
validateNativeUint8(
int value, String name) → void -
Validates a Dart integer before passing it to a native
uint8_tfield. -
validateTaiyinNativeCompatibility(
{required int abiVersion, required int capabilities}) → void - Validates the native metadata available before any optional symbol lookup.
-
validateTaiyinRequiredSymbols(
{required bool providesSymbol(String symbol), Set< String> requiredSymbols = taiyinRequiredAbi9Symbols}) → void - Rejects incomplete ABI-10 builds before generated bindings lazily look up a missing symbol.
-
writeJulianDate<
S extends TimeScale> (Arena arena, JulianDate< S> value) → Pointer<taiyin_split_julian_date> - Marshals a split Julian date into an arena-owned C ABI struct.
-
writeNativeCalendar(
TaiyinBindings bindings, Arena arena, AstroDateTime value) → Pointer< taiyin_calendar_datetime> - Marshals an astronomical calendar value into an arena-owned C ABI struct.
Typedefs
- Dart__darwin_clock_t = int
- Dart__darwin_ct_rune_t = int
- Dart__darwin_fsblkcnt_t = int
- Dart__darwin_fsfilcnt_t = int
- Dart__darwin_intptr_t = int
- Dart__darwin_natural_t = int
- Dart__darwin_nl_item = int
- Dart__darwin_pthread_key_t = int
- Dart__darwin_ptrdiff_t = int
- Dart__darwin_size_t = int
- Dart__darwin_ssize_t = int
- Dart__darwin_time_t = int
- Dart__darwin_wchar_t = int
- Dart__darwin_wctrans_t = int
- Dart__darwin_wint_t = int
- Dart__int16_t = int
- Dart__int32_t = int
- Dart__int64_t = int
- Dart__int8_t = int
- Dart__uint16_t = int
- Dart__uint32_t = int
- Dart__uint64_t = int
- Dart__uint8_t = int
- Dartint_fast16_t = int
- Dartint_fast32_t = int
- Dartint_fast64_t = int
- Dartint_fast8_t = int
- Dartint_least16_t = int
- Dartint_least32_t = int
- Dartint_least64_t = int
- Dartint_least8_t = int
- Dartintmax_t = int
- Dartregister_t = int
-
Darttaiyin_ayanamsha_evaluator_fnFunction
= Darttaiyin_status Function(Pointer<
taiyin_context> context, Pointer<taiyin_split_julian_date> jd_tt, int native_position_flags, Pointer<Double> out_ayanamsha_rad, Pointer<Void> user_data) - Darttaiyin_bool = int
- Darttaiyin_call_result = int
- Darttaiyin_ganzhi = int
-
Darttaiyin_house_system_evaluator_fnFunction
= Darttaiyin_bool Function(Pointer<
taiyin_house_system_dispatch_data> data, Pointer<Double> out_cusp_longitude_rad, Pointer<Void> user_data) -
Darttaiyin_native_position_evaluator_fnFunction
= Darttaiyin_status Function(Pointer<
taiyin_context> context, int target_id, Pointer<taiyin_split_julian_date> jd_tdb, Pointer<taiyin_split_julian_date> jd_tt, int flags, Pointer<Double> out_position, Pointer<taiyin_ephemeris_diagnostic> diagnostic, Pointer<Void> user_data) -
Darttaiyin_native_state_evaluator_fnFunction
= Darttaiyin_status Function(Pointer<
taiyin_context> context, int target_id, Pointer<taiyin_split_julian_date> jd_tdb, Pointer<taiyin_split_julian_date> jd_tt, int flags, Pointer<taiyin_cartesian_state> out_state, Pointer<taiyin_ephemeris_diagnostic> diagnostic, Pointer<Void> user_data) - Darttaiyin_status = int
- Dartu_int16_t = int
- Dartu_int32_t = int
- Dartu_int64_t = int
- Dartu_int8_t = int
- Dartuint_fast16_t = int
- Dartuint_fast32_t = int
- Dartuint_fast64_t = int
- Dartuint_fast8_t = int
- Dartuint_least16_t = int
- Dartuint_least32_t = int
- Dartuint_least64_t = int
- Dartuint_least8_t = int
- Dartuintmax_t = int
- Dartuser_long_t = int
- Dartuser_off_t = int
- Dartuser_ssize_t = int
- Dartuser_time_t = int
- DecodedCallResult = ({ResultFlags flags, int status})
- Decoded status and execution facts from a native ABI call.
- int_fast16_t = Int16
- int_fast32_t = Int32
- int_fast64_t = Int64
- int_fast8_t = Int8
- int_least16_t = Int16
- int_least32_t = Int32
- int_least64_t = Int64
- int_least8_t = Int8
- intmax_t = Long
- ptrdiff_t = __darwin_ptrdiff_t
- register_t = Int64
- rsize_t = __darwin_size_t
- syscall_arg_t = u_int64_t
-
taiyin_ayanamsha_evaluator_fn
= Pointer<
NativeFunction< taiyin_ayanamsha_evaluator_fnFunction> > -
taiyin_ayanamsha_evaluator_fnFunction
= taiyin_status Function(Pointer<
taiyin_context> context, Pointer<taiyin_split_julian_date> jd_tt, Uint64 native_position_flags, Pointer<Double> out_ayanamsha_rad, Pointer<Void> user_data) - taiyin_bool = Uint8
- taiyin_call_result = Int64
- taiyin_ganzhi = Uint8
-
taiyin_house_system_evaluator_fn
= Pointer<
NativeFunction< taiyin_house_system_evaluator_fnFunction> > -
taiyin_house_system_evaluator_fnFunction
= taiyin_bool Function(Pointer<
taiyin_house_system_dispatch_data> data, Pointer<Double> out_cusp_longitude_rad, Pointer<Void> user_data) -
taiyin_native_position_evaluator_fn
= Pointer<
NativeFunction< taiyin_native_position_evaluator_fnFunction> > -
taiyin_native_position_evaluator_fnFunction
= taiyin_status Function(Pointer<
taiyin_context> context, Int32 target_id, Pointer<taiyin_split_julian_date> jd_tdb, Pointer<taiyin_split_julian_date> jd_tt, Uint32 flags, Pointer<Double> out_position, Pointer<taiyin_ephemeris_diagnostic> diagnostic, Pointer<Void> user_data) -
taiyin_native_state_evaluator_fn
= Pointer<
NativeFunction< taiyin_native_state_evaluator_fnFunction> > -
taiyin_native_state_evaluator_fnFunction
= taiyin_status Function(Pointer<
taiyin_context> context, Int32 target_id, Pointer<taiyin_split_julian_date> jd_tdb, Pointer<taiyin_split_julian_date> jd_tt, Uint32 flags, Pointer<taiyin_cartesian_state> out_state, Pointer<taiyin_ephemeris_diagnostic> diagnostic, Pointer<Void> user_data) - taiyin_status = Int32
- u_int16_t = UnsignedShort
- u_int32_t = UnsignedInt
- u_int64_t = UnsignedLongLong
- u_int8_t = UnsignedChar
- uint_fast16_t = Uint16
- uint_fast32_t = Uint32
- uint_fast64_t = Uint64
- uint_fast8_t = Uint8
- uint_least16_t = Uint16
- uint_least32_t = Uint32
- uint_least64_t = Uint64
- uint_least8_t = Uint8
- uintmax_t = UnsignedLong
- user_addr_t = u_int64_t
- user_long_t = Int64
- user_off_t = Int64
- user_size_t = u_int64_t
- user_ssize_t = Int64
- user_time_t = Int64
- user_ulong_t = u_int64_t
- wint_t = __darwin_wint_t