Skip to content

Commit d1f226e

Browse files
committed
gbvector serialization
1 parent 7b342e7 commit d1f226e

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

src/serialization.jl

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,20 @@ function Serialization.serialize(s::AbstractSerializer, A::GBVecOrMat)
1010
return nothing
1111
end
1212

13-
function Serialization.deserialize(s::AbstractSerializer, ::Type{GBMatrix{T, Tf}}) where {T, Tf}
13+
function _gbdeserialize(s::AbstractSerializer, ::Type{T}) where {T} # Only for internal use, we assume we've already got a GB<Something> here.
1414
fill = deserialize(s)
15-
refA = Ref{LibGraphBLAS.GrB_Matrix}() # GrB will take care of size and such.
15+
refA = Ref{LibGraphBLAS.GrB_Matrix}() # Everything is a GrB_Matrix in the end.
1616
v = deserialize(s)
1717
@wraperror LibGraphBLAS.GrB_Matrix_deserialize(refA, gbtype(T), v, LibGraphBLAS.GrB_Index(length(v)))
18-
A = GBMatrix{T, Tf}(refA[], fill)
19-
return A
18+
return refA[], fill
19+
end
20+
21+
22+
function Serialization.deserialize(s::AbstractSerializer, ::Type{GBMatrix{T, Tf}}) where {T, Tf}
23+
return GBMatrix{T, Tf}(_gbdeserialize(s, T)...)
24+
end
25+
function Serialization.deserialize(s::AbstractSerializer, ::Type{GBVector{T, Tf}}) where {T, Tf}
26+
return GBVector{T, Tf}(_gbdeserialize(s, T)...)
2027
end
2128

2229
function serialize_sizehint(A::GBVecOrMat)

0 commit comments

Comments
 (0)