diff --git a/src/containers/sequences.jl b/src/containers/sequences.jl index 59d5110531d2711a8c9062da32fb63cd588f5762..e4914abf8ba61cff93d9acd336ee31afcedf5a1f 100644 --- a/src/containers/sequences.jl +++ b/src/containers/sequences.jl @@ -1,7 +1,7 @@ module Sequences import JuMP: Model import ...BuildSequences: @global_model_constructor -import ...Variables: variables, start_time, duration, VariableType +import ...Variables: variables, start_time, duration, VariableType, get_free_variable import ...BuildingBlocks: BuildingBlock, to_block """ @@ -13,11 +13,19 @@ Represents a series of [`BuildingBlock`](@ref) objects run in turn. struct Sequence <: BuildingBlock model :: Model blocks :: Vector{<:BuildingBlock} + TR :: VariableType + function Sequence(model::Model, blocks::Vector; TR=nothing) + new( + model, + to_block.(blocks), + get_free_variable(model, TR), + ) + end end @global_model_constructor Sequence -Sequence(model::Model, blocks...) = return Sequence(model, to_block.([blocks...])) +Sequence(model::Model, blocks...; TR=nothing) = Sequence(model, [blocks...]; TR=TR) Base.length(seq::Sequence) = length(seq) Base.getindex(seq::Sequence, index) = seq[index]