Hello,
Pardon my ignorance, trying Julia for the first time. I am trying to write a client for a TCP service I have in C++. I am trying to figure out how to extract the appropriate value from a union type in the response.
The IDL for the response can be viewed here
The Julia generated structures for the responses look like the following:
FlatBuffers.@with_kw mutable struct Response{A}
value_type::UInt8 = 0
value::A = nothing
end
struct ResultVariantKeyValueResults end
ResultVariantKeyValueResults(args...; kwargs...) = KeyValueResults(args...; kwargs...)
struct ResultVariantSuccess end
ResultVariantSuccess(args...; kwargs...) = Success(args...; kwargs...)
FlatBuffers.@UNION(ResultVariant, (
Nothing,
ResultVariantKeyValueResults,
ResultVariantSuccess,
))
FlatBuffers.@with_kw mutable struct KeyValueResults{A}
value::Vector{A} = []
end
FlatBuffers.@with_kw mutable struct KeyValueResult{A}
key::String = ""
value_type::UInt8 = 0
value::A = nothing
end
FlatBuffers.@with_kw mutable struct Success
value::Bool = false
end
I can connect to the TCP server, and submit a FB request. I get the FB response back, which is as defined in the IDL linked above. The response from the server once deserialised prints out the following expected structure:
┌ Info: Response{Union{Nothing, ResultVariantKeyValueResults, ResultVariantSuccess}}
│ value_type: UInt8 0x02
└ value: ResultVariantSuccess ResultVariantSuccess()
I am trying to figure out how I can convert the ResultVariantSuccess into the Success structure (or for the case of ResultVariantKeyValueResults into KeyValueResults). In the C++ code, there are value_as methods, which allow me to extract the proper data structures from the unions. I do not see anything similar in the FlatBuffers.jl file (at least did not see anything that looked similar).
Thanks in advance for any help in resolving the issue.
Rakesh
Hello,
Pardon my ignorance, trying Julia for the first time. I am trying to write a client for a TCP service I have in C++. I am trying to figure out how to extract the appropriate value from a union type in the response.
The IDL for the response can be viewed here
The Julia generated structures for the responses look like the following:
I can connect to the TCP server, and submit a FB request. I get the FB response back, which is as defined in the IDL linked above. The response from the server once deserialised prints out the following expected structure:
I am trying to figure out how I can convert the
ResultVariantSuccessinto theSuccessstructure (or for the case ofResultVariantKeyValueResultsintoKeyValueResults). In the C++ code, there arevalue_asmethods, which allow me to extract the proper data structures from the unions. I do not see anything similar in the FlatBuffers.jl file (at least did not see anything that looked similar).Thanks in advance for any help in resolving the issue.
Rakesh