Expand description
This crate provides a parser implementation for the FEF format
§Versioning
This crate follows Semantic Versioning 2.0.0. To separate versioning from the standard and avoid situations where multiple versions of this crate would have to be installed in a single project to work with different versions of the standard, this crate provides different modules for different major versions of the standard. These can be enabled by feature flags.
§Adding inherent items - breaking change
This crate doesn’t consider implementing any inherent items as a breaking change - it will not increase the major version. This can however potentially break backwards compatibility, if downstream crates don’t use disambiguation syntax for calling their own implementations of structs provided by this crate or structs that implement traits provided by this crate.
It is generally considered a good practice to use disambiguation syntax if you need to add an impl to a struct from an upstream crate.
Example of bad usage, that we don’t guarantee backwards compatibility for:
struct MyConfig;
impl Config for MyConfig {
// ...
}
impl MyConfig {
pub fn language(&self) -> &str {
// ...
}
}
let config = MyConfig;
let language = config.language(); // This will break if we add a language method to the Config trait
let language = MyConfig::language(&config); // This will not break and execute your language method