Struct move_binary_format::compatibility::Compatibility
source · pub struct Compatibility {
pub struct_and_function_linking: bool,
pub struct_layout: bool,
}
Expand description
The result of a linking and layout compatibility check. Here is what the different combinations
mean:
{ struct: true, struct_layout: true }
: fully backward compatible
{ struct_and_function_linking: true, struct_layout: false }
: Dependent modules that reference functions or types in this module may not link. However, fixing, recompiling, and redeploying all dependent modules will work–no data migration needed.
{ type_and_function_linking: true, struct_layout: false }
: Attempting to read structs published by this module will now fail at runtime. However, dependent modules will continue to link. Requires data migration, but no changes to dependent modules.
{ type_and_function_linking: false, struct_layout: false }
: Everything is broken. Need both a data migration and changes to dependent modules.
Fields§
§struct_and_function_linking: bool
If false, dependent modules that reference functions or structs in this module may not link
struct_layout: bool
If false, attempting to read structs previously published by this module will fail at runtime
Implementations§
source§impl Compatibility
impl Compatibility
sourcepub fn is_fully_compatible(&self) -> bool
pub fn is_fully_compatible(&self) -> bool
Return true if the two module s compared in the compatiblity check are both linking and layout compatible.
sourcepub fn check(old_module: &Module, new_module: &Module) -> Compatibility
pub fn check(old_module: &Module, new_module: &Module) -> Compatibility
Return compatibility assessment for new_module
relative to old module old_module
.