use bson::{RawBson, RawDocumentBuf};
use crate::ChainsawResult;
use super::bson_idl_field_de::BsonIdlFieldDeserializer;
pub fn deserialize_fields_to_object<'opts>(
buf: &mut &[u8],
fields: &[BsonIdlFieldDeserializer<'opts>],
) -> ChainsawResult<RawBson> {
let mut doc = RawDocumentBuf::new();
for field_de in fields.iter() {
field_de.deserialize(&mut doc, buf)?;
}
Ok(RawBson::Document(doc))
}