I guess you need something like:
native_write(model::Model) = native_write(backend(model))
function native_write(model::MOI.Utilities.CachingOptimizer)
MOI.Utilities.attach_optimizer(model)
return native_write(model.optimizer)
end
native_write(model::MOI.Bridges.LazyBridgeOptimizer) = native_write(model.model)
function native_write(model::Gurobi.Optimizer)
# ...
end
function native_write(model::CPLEX.Optimizer)
# ...
end