From 8c2572282c258570ec080c85c0160395526d073a Mon Sep 17 00:00:00 2001 From: Michiel Cottaar <MichielCottaar@protonmail.com> Date: Fri, 20 Sep 2024 13:04:07 +0100 Subject: [PATCH] Use `base.length` rather than N to determine length Allows for sequences with unknown length --- src/containers/base_sequences.jl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/containers/base_sequences.jl b/src/containers/base_sequences.jl index c18316a..47d9f81 100644 --- a/src/containers/base_sequences.jl +++ b/src/containers/base_sequences.jl @@ -55,7 +55,8 @@ Base.length(bs::BaseSequence{N}) where {N} = iszero(nrepeat(bs)) ? N : (nrepeat( Base.eltype(::Type{<:BaseSequence}) = ContainerBlock Base.keys(seq::BaseSequence{N}) where {N} = 1:N -function start_time(bs::BaseSequence{N}, index::Integer) where {N} +function start_time(bs::BaseSequence, index::Integer) + N = length(bs) nTR = div(index-1, N, RoundDown) if 0 < nrepeat(bs) <= nTR throw(BoundsError(bs, index)) @@ -208,7 +209,7 @@ Converst object into something that can be included in the sequence: to_block(cb::ContainerBlock) = cb to_block(s::Symbol) = to_block(Val(s)) to_block(s::Union{VariableType, Nothing, Val{:min}, Val{:max}}) = Wait(s) -to_block(ec::EventComponent) = BuildingBlock([NoGradient(variables.duration(ec)), (0., ec)]) +to_block(ec::EventComponent) = BuildingBlock(ec) function make_generic(seq::BaseSequence) -- GitLab