Where do I find the Visitor to use when deserializing data?
xrl opened this issue · 2 comments
xrl commented
I have loaded the schema and I have some data to parse but when it comes time to deserialize I have to provide a visitor. Where do I find this? Here's a copy of my code:
use serde::Deserializer;
use serde_avro::de::Deserializer as AvroDeserializer;
use serde_avro::de::read::Direct;
[[ SNIP ]]
let schema_json : serde_json::value::Value = serde_json::from_str(&idb_stream.value_schema[..]).unwrap();
let mut registry = serde_avro::schema::SchemaRegistry::new();
registry.add_json(&schema_json).unwrap();
let schema = registry.schema_by_name("vnoportal.ut").unwrap();
[[ SNIP ]]
let payload = m.payload().unwrap();
let payload_len = payload.len();
let mut payload_cursor = std::io::Cursor::new(payload);
let direct_reader = Direct::new(payload_cursor, payload_len);
let mut deserde = AvroDeserializer::new(direct_reader,®istry,&schema);
use std::collections::BTreeMap;
let val : Result<serde_value::Value, serde_avro::error::Error> = deserde.deserialize();
The error is on the last line, I must provide a visitor for deserde's deserialize.
mikaelstaldal commented
rq now uses avro-rs.
dflemstr commented
Yes, the repo no longer contains any avro support, please turn to use a different library!