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: boolIf false, dependent modules that reference functions or structs in this module may not link
struct_layout: boolIf 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.