Skip to content

Bindings for define statements using scientific notation #2881

@AtmoPierce

Description

@AtmoPierce

Input C/C++ Header

/* Arcseconds to radians */
/* Radians to arcseconds */
#define DR2AS (206264.8062470963551564734)

/* Arcseconds to radians */
#define DAS2R (4.848136811095359935899141e-6)

/* Seconds of time to radians */
#define DS2R (7.272205216643039903848712e-5)

/* Arcseconds in a full circle */
#define TURNAS (1296000.0)

Bindgen Invocation

    let bindings = bindgen::Builder::default()
                                .generate_inline_functions(true)
                                .generate_cstr(true)
                                .use_core()
                                .no_convert_floats()
                                .header("extern/src/sofa.h")
                                .header("extern/src/sofam.h")
                                .blocklist_var("FP_NAN")
                                .blocklist_var("FP_INFINITE")
                                .blocklist_var("FP_ZERO")
                                .blocklist_var("FP_SUBNORMAL")
                                .blocklist_var("FP_NORMAL")
                                .generate()
                                .expect("Unable to generate bindings");

Actual Results

pub const DR2AS: f64 = 206264.80624709636;
pub const TURNAS: f64 = 1296000.0;

Expected Results

It appears that variables that use scientific notation in define statements are ignored. I can codify these in my own code, although, it would be nice to rely on the bindings.rs file. Are there any methods that enable this? Or is this truly an issue?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions