encoder operator<<(encoder e, const start& s) { switch (s.type) { case ARRAY: pn_data_put_array(e.pn_object(), s.is_described, pn_type_t(s.element)); break; case MAP: pn_data_put_map(e.pn_object()); break; case LIST: pn_data_put_list(e.pn_object()); break; case DESCRIBED: pn_data_put_described(e.pn_object()); break; default: throw conversion_error(MSG("" << s.type << " is not a container type")); } pn_data_enter(e.pn_object()); return e; }
encoder& operator<<(encoder& e, const start& s) { switch (s.type) { case ARRAY: pn_data_put_array(pn_cast(&e), s.is_described, pn_type_t(s.element)); break; case MAP: pn_data_put_map(pn_cast(&e)); break; case LIST: pn_data_put_list(pn_cast(&e)); break; case DESCRIBED: pn_data_put_described(pn_cast(&e)); break; default: throw encode_error(MSG("" << s.type << " is not a container type")); } pn_data_enter(pn_cast(&e)); return e; }