Skip to content

Commit 68a16ef

Browse files
committed
maybe last fixes
1 parent 4984f5b commit 68a16ef

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

src/services/Serialization.jl

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -592,7 +592,7 @@ end
592592
# end
593593

594594
# TODO: REFACTOR THIS AS A JSON3 STRUCT DESERIALIZER.
595-
function fncStringToData(packtype::Type, data::Union{String, <:NamedTuple})
595+
function fncStringToData(packtype::Type{<:AbstractPackedFactor}, data::Union{String, <:NamedTuple})
596596
# Convert string to Named Tuples for kwargs
597597
fncData = data isa AbstractString ? JSON2.read(data) : data
598598

@@ -610,15 +610,29 @@ function fncStringToData(packtype::Type, data::Union{String, <:NamedTuple})
610610
)
611611
return packed
612612
end
613-
614-
function fncStringToData(fncType::String, data::T) where T
613+
fncStringToData(::Type{T}, data::PackedFunctionNodeData{T}) where {T <: AbstractPackedFactor} = data
614+
function fncStringToData(fncType::String, data::PackedFunctionNodeData{T}) where {T <: AbstractPackedFactor}
615615
packtype = DFG.getTypeFromSerializationModule("Packed"*fncType)
616616
if packtype == T
617617
data
618+
else
619+
error("Unknown type conversion\n$(fncType)\n$packtype\n$(PackedFunctionNodeData{T})")
620+
end
621+
end
622+
623+
function fncStringToData(fncType::String, data::T) where {T <: AbstractPackedFactor}
624+
packtype = DFG.getTypeFromSerializationModule("Packed"*fncType)
625+
if packtype == T # || T <: packtype
626+
data
618627
else
619628
fncStringToData(packtype, data)
620629
end
621630
end
631+
function fncStringToData(fncType::String, data::Union{String, <:NamedTuple})
632+
packtype = DFG.getTypeFromSerializationModule("Packed"*fncType)
633+
fncStringToData(packtype, data)
634+
end
635+
622636

623637
# Returns `::DFGFactor`
624638
function unpackFactor(

0 commit comments

Comments
 (0)