static void _any_to_serializable(flexible_type& data, schema_t& schema, const variant_type& input) { switch (input.which()) { case 0: // flexible type _to_serializable(data, schema, variant_get_value<flexible_type>(input)); break; case 1: // sgraph _to_serializable(data, schema, variant_get_value<gl_sgraph>(input)); break; case 4: // sframe _to_serializable(data, schema, variant_get_value<gl_sframe>(input)); break; case 5: // sarray _to_serializable(data, schema, variant_get_value<gl_sarray>(input)); break; case 6: // dictionary _to_serializable(data, schema, variant_get_value<std::map<std::string, variant_type>>(input)); break; case 7: // list _to_serializable(data, schema, variant_get_value<std::vector<variant_type>>(input)); break; default: log_and_throw("Unsupported type for to_serializable. Expected a flexible_type, SGraph, SFrame, SArray, dictionary, or list."); } }
void push(ptr_type& vec) { if(var.which() != empty_t) vec->push_back(*this); }