In C world, when building external libraries, their behavior can be significantly customized at compile time by re-defining macros that are put in place by the library author.
If we look at SQLite's Compile-time Options, for example, one can pass the following options to the compiler to effectively change the values of constants defined in the library:
-D SQLITE_DEFAULT_PAGE_SIZE=2097152 -D SQLITE_DEFAULT_SYNCHRONOUS=3
Is this possible to do something similar in Rust? Closest thing I've found is Cargo features, but they only allow you to perform conditional compilation and not substitution of some predefined values at compile-time.