|
1 | | -# DummyModel{true} implements add_variable and add_constraint |
2 | | -struct DummyModel{A} <: MOI.ModelLike |
3 | | -end |
4 | | -MOI.add_variable(::DummyModel{true}) = MOI.VariableIndex(0) |
5 | | -function MOI.empty!(::DummyModel) end |
6 | | -function MOI.copy_to(dest::DummyModel, src::MOI.ModelLike; copy_names=true) |
| 1 | +abstract type AbstractDummyModel <: MOI.ModelLike end |
| 2 | + |
| 3 | +function MOI.empty!(::AbstractDummyModel) end |
| 4 | +function MOI.copy_to(dest::AbstractDummyModel, src::MOI.ModelLike; copy_names=true) |
7 | 5 | return MOIU.default_copy_to(dest, src, copy_names) |
8 | 6 | end |
9 | | -MOI.supports(::DummyModel, ::MOI.ObjectiveSense) = true |
10 | | -MOI.supports(::DummyModel, ::MOI.ConstraintPrimalStart, |
| 7 | +MOI.supports(::AbstractDummyModel, ::MOI.ObjectiveSense) = true |
| 8 | +MOI.supports(::AbstractDummyModel, ::MOI.ConstraintPrimalStart, |
11 | 9 | ::Type{<:MOI.ConstraintIndex}) = true |
12 | | -MOI.supports_constraint(::DummyModel, ::Type{MOI.SingleVariable}, |
| 10 | +MOI.supports_constraint(::AbstractDummyModel, ::Type{MOI.SingleVariable}, |
13 | 11 | ::Type{MOI.EqualTo{Float64}}) = true |
14 | | -function MOI.add_constraint(::DummyModel{true}, ::MOI.SingleVariable, |
| 12 | +MOI.supports_constraint(::AbstractDummyModel, ::Type{MOI.VectorOfVariables}, |
| 13 | + ::Type{MOI.Zeros}) = true |
| 14 | + |
| 15 | +struct DummyModel <: AbstractDummyModel |
| 16 | +end |
| 17 | + |
| 18 | +# Implements add_variable and add_constraint |
| 19 | +struct DummyModelWithAdd <: AbstractDummyModel |
| 20 | +end |
| 21 | +MOI.add_variable(::DummyModelWithAdd) = MOI.VariableIndex(0) |
| 22 | +function MOI.add_constraint(::DummyModelWithAdd, ::MOI.SingleVariable, |
15 | 23 | ::MOI.EqualTo{Float64}) |
16 | 24 | return MOI.ConstraintIndex{MOI.SingleVariable, MOI.EqualTo{Float64}}(0) |
17 | 25 | end |
18 | | -MOI.supports_constraint(::DummyModel, ::Type{MOI.VectorOfVariables}, |
19 | | - ::Type{MOI.Zeros}) = true |
|
0 commit comments