Skip to content

rustified_enum("*") no longer works as of 0.62 #2373

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
jestarray opened this issue Dec 15, 2022 · 3 comments · Fixed by #2374
Closed

rustified_enum("*") no longer works as of 0.62 #2373

jestarray opened this issue Dec 15, 2022 · 3 comments · Fixed by #2374

Comments

@jestarray
Copy link

jestarray commented Dec 15, 2022

Input C/C++ Header

Relevant crate: https://github.com/jestarray/fmod-sys

What regex should I use now that "*" does not work anymore? I know a few other bindgen crates that use wildcard.

typedef enum FMOD_RESULT
{
    FMOD_OK,
    FMOD_ERR_BADCOMMAND,
    FMOD_ERR_CHANNEL_ALLOC,
    FMOD_ERR_CHANNEL_STOLEN,
    FMOD_ERR_DMA,
    FMOD_ERR_DSP_CONNECTION,
    FMOD_ERR_DSP_DONTPROCESS,
    FMOD_ERR_DSP_FORMAT,
    FMOD_ERR_DSP_INUSE,
    FMOD_ERR_DSP_NOTFOUND,
    FMOD_ERR_DSP_RESERVED,
    FMOD_ERR_DSP_SILENCE,
    FMOD_ERR_DSP_TYPE,
    FMOD_ERR_FILE_BAD,
    FMOD_ERR_FILE_COULDNOTSEEK,
    FMOD_ERR_FILE_DISKEJECTED,
    FMOD_ERR_FILE_EOF,
    FMOD_ERR_FILE_ENDOFDATA,
    FMOD_ERR_FILE_NOTFOUND,
    FMOD_ERR_FORMAT,
    FMOD_ERR_HEADER_MISMATCH,
    FMOD_ERR_HTTP,
    FMOD_ERR_HTTP_ACCESS,
    FMOD_ERR_HTTP_PROXY_AUTH,
    FMOD_ERR_HTTP_SERVER_ERROR,
    FMOD_ERR_HTTP_TIMEOUT,
    FMOD_ERR_INITIALIZATION,
    FMOD_ERR_INITIALIZED,
    FMOD_ERR_INTERNAL,
    FMOD_ERR_INVALID_FLOAT,
    FMOD_ERR_INVALID_HANDLE,
    FMOD_ERR_INVALID_PARAM,
    FMOD_ERR_INVALID_POSITION,
    FMOD_ERR_INVALID_SPEAKER,
    FMOD_ERR_INVALID_SYNCPOINT,
    FMOD_ERR_INVALID_THREAD,
    FMOD_ERR_INVALID_VECTOR,
    FMOD_ERR_MAXAUDIBLE,
    FMOD_ERR_MEMORY,
    FMOD_ERR_MEMORY_CANTPOINT,
    FMOD_ERR_NEEDS3D,
    FMOD_ERR_NEEDSHARDWARE,
    FMOD_ERR_NET_CONNECT,
    FMOD_ERR_NET_SOCKET_ERROR,
    FMOD_ERR_NET_URL,
    FMOD_ERR_NET_WOULD_BLOCK,
    FMOD_ERR_NOTREADY,
    FMOD_ERR_OUTPUT_ALLOCATED,
    FMOD_ERR_OUTPUT_CREATEBUFFER,
    FMOD_ERR_OUTPUT_DRIVERCALL,
    FMOD_ERR_OUTPUT_FORMAT,
    FMOD_ERR_OUTPUT_INIT,
    FMOD_ERR_OUTPUT_NODRIVERS,
    FMOD_ERR_PLUGIN,
    FMOD_ERR_PLUGIN_MISSING,
    FMOD_ERR_PLUGIN_RESOURCE,
    FMOD_ERR_PLUGIN_VERSION,
    FMOD_ERR_RECORD,
    FMOD_ERR_REVERB_CHANNELGROUP,
    FMOD_ERR_REVERB_INSTANCE,
    FMOD_ERR_SUBSOUNDS,
    FMOD_ERR_SUBSOUND_ALLOCATED,
    FMOD_ERR_SUBSOUND_CANTMOVE,
    FMOD_ERR_TAGNOTFOUND,
    FMOD_ERR_TOOMANYCHANNELS,
    FMOD_ERR_TRUNCATED,
    FMOD_ERR_UNIMPLEMENTED,
    FMOD_ERR_UNINITIALIZED,
    FMOD_ERR_UNSUPPORTED,
    FMOD_ERR_VERSION,
    FMOD_ERR_EVENT_ALREADY_LOADED,
    FMOD_ERR_EVENT_LIVEUPDATE_BUSY,
    FMOD_ERR_EVENT_LIVEUPDATE_MISMATCH,
    FMOD_ERR_EVENT_LIVEUPDATE_TIMEOUT,
    FMOD_ERR_EVENT_NOTFOUND,
    FMOD_ERR_STUDIO_UNINITIALIZED,
    FMOD_ERR_STUDIO_NOT_LOADED,
    FMOD_ERR_INVALID_STRING,
    FMOD_ERR_ALREADY_LOCKED,
    FMOD_ERR_NOT_LOCKED,
    FMOD_ERR_RECORD_DISCONNECTED,
    FMOD_ERR_TOOMANYSAMPLES,

    FMOD_RESULT_FORCEINT = 65536
} FMOD_RESULT;
bindgen::Builder::default()
        .header("core-wrapper.h")
        .rustified_enum("*")
        .derive_default(true)
        .generate()
        .expect("Unable to generate core bindings")

Actual Results

// 0.62 >=
pub const FMOD_RESULT_FMOD_OK: FMOD_RESULT = 0;
pub const FMOD_RESULT_FMOD_ERR_BADCOMMAND: FMOD_RESULT = 1;
pub const FMOD_RESULT_FMOD_ERR_CHANNEL_ALLOC: FMOD_RESULT = 2;
pub const FMOD_RESULT_FMOD_ERR_CHANNEL_STOLEN: FMOD_RESULT = 3;
pub const FMOD_RESULT_FMOD_ERR_DMA: FMOD_RESULT = 4;
pub const FMOD_RESULT_FMOD_ERR_DSP_CONNECTION: FMOD_RESULT = 5;
pub const FMOD_RESULT_FMOD_ERR_DSP_DONTPROCESS: FMOD_RESULT = 6;
pub const FMOD_RESULT_FMOD_ERR_DSP_FORMAT: FMOD_RESULT = 7;
pub const FMOD_RESULT_FMOD_ERR_DSP_INUSE: FMOD_RESULT = 8;
pub const FMOD_RESULT_FMOD_ERR_DSP_NOTFOUND: FMOD_RESULT = 9;
pub const FMOD_RESULT_FMOD_ERR_DSP_RESERVED: FMOD_RESULT = 10;
pub const FMOD_RESULT_FMOD_ERR_DSP_SILENCE: FMOD_RESULT = 11;
pub const FMOD_RESULT_FMOD_ERR_DSP_TYPE: FMOD_RESULT = 12;
pub const FMOD_RESULT_FMOD_ERR_FILE_BAD: FMOD_RESULT = 13;
pub const FMOD_RESULT_FMOD_ERR_FILE_COULDNOTSEEK: FMOD_RESULT = 14;
pub const FMOD_RESULT_FMOD_ERR_FILE_DISKEJECTED: FMOD_RESULT = 15;
pub const FMOD_RESULT_FMOD_ERR_FILE_EOF: FMOD_RESULT = 16;
pub const FMOD_RESULT_FMOD_ERR_FILE_ENDOFDATA: FMOD_RESULT = 17;
pub const FMOD_RESULT_FMOD_ERR_FILE_NOTFOUND: FMOD_RESULT = 18;
pub const FMOD_RESULT_FMOD_ERR_FORMAT: FMOD_RESULT = 19;
pub const FMOD_RESULT_FMOD_ERR_HEADER_MISMATCH: FMOD_RESULT = 20;
pub const FMOD_RESULT_FMOD_ERR_HTTP: FMOD_RESULT = 21;
pub const FMOD_RESULT_FMOD_ERR_HTTP_ACCESS: FMOD_RESULT = 22;
pub const FMOD_RESULT_FMOD_ERR_HTTP_PROXY_AUTH: FMOD_RESULT = 23;
pub const FMOD_RESULT_FMOD_ERR_HTTP_SERVER_ERROR: FMOD_RESULT = 24;
pub const FMOD_RESULT_FMOD_ERR_HTTP_TIMEOUT: FMOD_RESULT = 25;
pub const FMOD_RESULT_FMOD_ERR_INITIALIZATION: FMOD_RESULT = 26;
pub const FMOD_RESULT_FMOD_ERR_INITIALIZED: FMOD_RESULT = 27;
pub const FMOD_RESULT_FMOD_ERR_INTERNAL: FMOD_RESULT = 28;
pub const FMOD_RESULT_FMOD_ERR_INVALID_FLOAT: FMOD_RESULT = 29;
pub const FMOD_RESULT_FMOD_ERR_INVALID_HANDLE: FMOD_RESULT = 30;
pub const FMOD_RESULT_FMOD_ERR_INVALID_PARAM: FMOD_RESULT = 31;
pub const FMOD_RESULT_FMOD_ERR_INVALID_POSITION: FMOD_RESULT = 32;
pub const FMOD_RESULT_FMOD_ERR_INVALID_SPEAKER: FMOD_RESULT = 33;
pub const FMOD_RESULT_FMOD_ERR_INVALID_SYNCPOINT: FMOD_RESULT = 34;
pub const FMOD_RESULT_FMOD_ERR_INVALID_THREAD: FMOD_RESULT = 35;
pub const FMOD_RESULT_FMOD_ERR_INVALID_VECTOR: FMOD_RESULT = 36;
pub const FMOD_RESULT_FMOD_ERR_MAXAUDIBLE: FMOD_RESULT = 37;
pub const FMOD_RESULT_FMOD_ERR_MEMORY: FMOD_RESULT = 38;
pub const FMOD_RESULT_FMOD_ERR_MEMORY_CANTPOINT: FMOD_RESULT = 39;
pub const FMOD_RESULT_FMOD_ERR_NEEDS3D: FMOD_RESULT = 40;
pub const FMOD_RESULT_FMOD_ERR_NEEDSHARDWARE: FMOD_RESULT = 41;
pub const FMOD_RESULT_FMOD_ERR_NET_CONNECT: FMOD_RESULT = 42;
pub const FMOD_RESULT_FMOD_ERR_NET_SOCKET_ERROR: FMOD_RESULT = 43;
pub const FMOD_RESULT_FMOD_ERR_NET_URL: FMOD_RESULT = 44;
pub const FMOD_RESULT_FMOD_ERR_NET_WOULD_BLOCK: FMOD_RESULT = 45;
pub const FMOD_RESULT_FMOD_ERR_NOTREADY: FMOD_RESULT = 46;
pub const FMOD_RESULT_FMOD_ERR_OUTPUT_ALLOCATED: FMOD_RESULT = 47;
pub const FMOD_RESULT_FMOD_ERR_OUTPUT_CREATEBUFFER: FMOD_RESULT = 48;
pub const FMOD_RESULT_FMOD_ERR_OUTPUT_DRIVERCALL: FMOD_RESULT = 49;
pub const FMOD_RESULT_FMOD_ERR_OUTPUT_FORMAT: FMOD_RESULT = 50;
pub const FMOD_RESULT_FMOD_ERR_OUTPUT_INIT: FMOD_RESULT = 51;
pub const FMOD_RESULT_FMOD_ERR_OUTPUT_NODRIVERS: FMOD_RESULT = 52;
pub const FMOD_RESULT_FMOD_ERR_PLUGIN: FMOD_RESULT = 53;
pub const FMOD_RESULT_FMOD_ERR_PLUGIN_MISSING: FMOD_RESULT = 54;
pub const FMOD_RESULT_FMOD_ERR_PLUGIN_RESOURCE: FMOD_RESULT = 55;
pub const FMOD_RESULT_FMOD_ERR_PLUGIN_VERSION: FMOD_RESULT = 56;
pub const FMOD_RESULT_FMOD_ERR_RECORD: FMOD_RESULT = 57;
pub const FMOD_RESULT_FMOD_ERR_REVERB_CHANNELGROUP: FMOD_RESULT = 58;
pub const FMOD_RESULT_FMOD_ERR_REVERB_INSTANCE: FMOD_RESULT = 59;
pub const FMOD_RESULT_FMOD_ERR_SUBSOUNDS: FMOD_RESULT = 60;
pub const FMOD_RESULT_FMOD_ERR_SUBSOUND_ALLOCATED: FMOD_RESULT = 61;
pub const FMOD_RESULT_FMOD_ERR_SUBSOUND_CANTMOVE: FMOD_RESULT = 62;
pub const FMOD_RESULT_FMOD_ERR_TAGNOTFOUND: FMOD_RESULT = 63;
pub const FMOD_RESULT_FMOD_ERR_TOOMANYCHANNELS: FMOD_RESULT = 64;
pub const FMOD_RESULT_FMOD_ERR_TRUNCATED: FMOD_RESULT = 65;
pub const FMOD_RESULT_FMOD_ERR_UNIMPLEMENTED: FMOD_RESULT = 66;
pub const FMOD_RESULT_FMOD_ERR_UNINITIALIZED: FMOD_RESULT = 67;
pub const FMOD_RESULT_FMOD_ERR_UNSUPPORTED: FMOD_RESULT = 68;
pub const FMOD_RESULT_FMOD_ERR_VERSION: FMOD_RESULT = 69;
pub const FMOD_RESULT_FMOD_ERR_EVENT_ALREADY_LOADED: FMOD_RESULT = 70;
pub const FMOD_RESULT_FMOD_ERR_EVENT_LIVEUPDATE_BUSY: FMOD_RESULT = 71;
pub const FMOD_RESULT_FMOD_ERR_EVENT_LIVEUPDATE_MISMATCH: FMOD_RESULT = 72;
pub const FMOD_RESULT_FMOD_ERR_EVENT_LIVEUPDATE_TIMEOUT: FMOD_RESULT = 73;
pub const FMOD_RESULT_FMOD_ERR_EVENT_NOTFOUND: FMOD_RESULT = 74;
pub const FMOD_RESULT_FMOD_ERR_STUDIO_UNINITIALIZED: FMOD_RESULT = 75;
pub const FMOD_RESULT_FMOD_ERR_STUDIO_NOT_LOADED: FMOD_RESULT = 76;
pub const FMOD_RESULT_FMOD_ERR_INVALID_STRING: FMOD_RESULT = 77;
pub const FMOD_RESULT_FMOD_ERR_ALREADY_LOCKED: FMOD_RESULT = 78;
pub const FMOD_RESULT_FMOD_ERR_NOT_LOCKED: FMOD_RESULT = 79;
pub const FMOD_RESULT_FMOD_ERR_RECORD_DISCONNECTED: FMOD_RESULT = 80;
pub const FMOD_RESULT_FMOD_ERR_TOOMANYSAMPLES: FMOD_RESULT = 81;
pub const FMOD_RESULT_FMOD_RESULT_FORCEINT: FMOD_RESULT = 65536;
pub type FMOD_RESULT = ::std::os::raw::c_uint;

Expected Results

#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum FMOD_RESULT {
    FMOD_OK = 0,
    FMOD_ERR_BADCOMMAND = 1,
    FMOD_ERR_CHANNEL_ALLOC = 2,
    FMOD_ERR_CHANNEL_STOLEN = 3,
    FMOD_ERR_DMA = 4,
    FMOD_ERR_DSP_CONNECTION = 5,
    FMOD_ERR_DSP_DONTPROCESS = 6,
    FMOD_ERR_DSP_FORMAT = 7,
    FMOD_ERR_DSP_INUSE = 8,
    FMOD_ERR_DSP_NOTFOUND = 9,
    FMOD_ERR_DSP_RESERVED = 10,
    FMOD_ERR_DSP_SILENCE = 11,
    FMOD_ERR_DSP_TYPE = 12,
    FMOD_ERR_FILE_BAD = 13,
    FMOD_ERR_FILE_COULDNOTSEEK = 14,
    FMOD_ERR_FILE_DISKEJECTED = 15,
    FMOD_ERR_FILE_EOF = 16,
    FMOD_ERR_FILE_ENDOFDATA = 17,
    FMOD_ERR_FILE_NOTFOUND = 18,
    FMOD_ERR_FORMAT = 19,
    FMOD_ERR_HEADER_MISMATCH = 20,
    FMOD_ERR_HTTP = 21,
    FMOD_ERR_HTTP_ACCESS = 22,
    FMOD_ERR_HTTP_PROXY_AUTH = 23,
    FMOD_ERR_HTTP_SERVER_ERROR = 24,
    FMOD_ERR_HTTP_TIMEOUT = 25,
    FMOD_ERR_INITIALIZATION = 26,
    FMOD_ERR_INITIALIZED = 27,
    FMOD_ERR_INTERNAL = 28,
    FMOD_ERR_INVALID_FLOAT = 29,
    FMOD_ERR_INVALID_HANDLE = 30,
    FMOD_ERR_INVALID_PARAM = 31,
    FMOD_ERR_INVALID_POSITION = 32,
    FMOD_ERR_INVALID_SPEAKER = 33,
    FMOD_ERR_INVALID_SYNCPOINT = 34,
    FMOD_ERR_INVALID_THREAD = 35,
    FMOD_ERR_INVALID_VECTOR = 36,
    FMOD_ERR_MAXAUDIBLE = 37,
    FMOD_ERR_MEMORY = 38,
    FMOD_ERR_MEMORY_CANTPOINT = 39,
    FMOD_ERR_NEEDS3D = 40,
    FMOD_ERR_NEEDSHARDWARE = 41,
    FMOD_ERR_NET_CONNECT = 42,
    FMOD_ERR_NET_SOCKET_ERROR = 43,
    FMOD_ERR_NET_URL = 44,
    FMOD_ERR_NET_WOULD_BLOCK = 45,
    FMOD_ERR_NOTREADY = 46,
    FMOD_ERR_OUTPUT_ALLOCATED = 47,
    FMOD_ERR_OUTPUT_CREATEBUFFER = 48,
    FMOD_ERR_OUTPUT_DRIVERCALL = 49,
    FMOD_ERR_OUTPUT_FORMAT = 50,
    FMOD_ERR_OUTPUT_INIT = 51,
    FMOD_ERR_OUTPUT_NODRIVERS = 52,
    FMOD_ERR_PLUGIN = 53,
    FMOD_ERR_PLUGIN_MISSING = 54,
    FMOD_ERR_PLUGIN_RESOURCE = 55,
    FMOD_ERR_PLUGIN_VERSION = 56,
    FMOD_ERR_RECORD = 57,
    FMOD_ERR_REVERB_CHANNELGROUP = 58,
    FMOD_ERR_REVERB_INSTANCE = 59,
    FMOD_ERR_SUBSOUNDS = 60,
    FMOD_ERR_SUBSOUND_ALLOCATED = 61,
    FMOD_ERR_SUBSOUND_CANTMOVE = 62,
    FMOD_ERR_TAGNOTFOUND = 63,
    FMOD_ERR_TOOMANYCHANNELS = 64,
    FMOD_ERR_TRUNCATED = 65,
    FMOD_ERR_UNIMPLEMENTED = 66,
    FMOD_ERR_UNINITIALIZED = 67,
    FMOD_ERR_UNSUPPORTED = 68,
    FMOD_ERR_VERSION = 69,
    FMOD_ERR_EVENT_ALREADY_LOADED = 70,
    FMOD_ERR_EVENT_LIVEUPDATE_BUSY = 71,
    FMOD_ERR_EVENT_LIVEUPDATE_MISMATCH = 72,
    FMOD_ERR_EVENT_LIVEUPDATE_TIMEOUT = 73,
    FMOD_ERR_EVENT_NOTFOUND = 74,
    FMOD_ERR_STUDIO_UNINITIALIZED = 75,
    FMOD_ERR_STUDIO_NOT_LOADED = 76,
    FMOD_ERR_INVALID_STRING = 77,
    FMOD_ERR_ALREADY_LOCKED = 78,
    FMOD_ERR_NOT_LOCKED = 79,
    FMOD_ERR_RECORD_DISCONNECTED = 80,
    FMOD_ERR_TOOMANYSAMPLES = 81,
    FMOD_RESULT_FORCEINT = 65536,
}
@pvdrz
Copy link
Contributor

pvdrz commented Dec 15, 2022

Thanks for the report.

This is because wildcard patterns are no longer considered valid as documented in the changelog. As an alternative you should use the ".*" pattern instead. Let me know if that works for you

jestarray added a commit to jestarray/fmod-sys that referenced this issue Dec 15, 2022
@jestarray
Copy link
Author

Yep, it seems to fix it! (ignore the failing CI test). Maybe put this in the changelog as to how to fix it? Either way, you can close this issue now.

@pvdrz
Copy link
Contributor

pvdrz commented Dec 15, 2022

I'll extend both the CHANGELOG entry and the docs to properly document this.

mqudsi added a commit to mqudsi/ffmpeg-the-third that referenced this issue Feb 10, 2023
This patch upgrades the `bindgen` dependency to version 0.64 which includes a
fix for an upstream issue broken builds when building w/ clang 16 or newer [0].

The use of a wildcard `*` was removed in bindgen 0.62 [1], code has been updated
to use the regex approach instead to continue working.

[0]: rust-lang/rust-bindgen#2316
[1]: rust-lang/rust-bindgen#2373
shssoichiro pushed a commit to shssoichiro/ffmpeg-the-third that referenced this issue Feb 10, 2023
This patch upgrades the `bindgen` dependency to version 0.64 which includes a
fix for an upstream issue broken builds when building w/ clang 16 or newer [0].

The use of a wildcard `*` was removed in bindgen 0.62 [1], code has been updated
to use the regex approach instead to continue working.

[0]: rust-lang/rust-bindgen#2316
[1]: rust-lang/rust-bindgen#2373
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants