MCPcopy Create free account
hub / github.com/danielaparker/jsoncons / visit_null

Function visit_null

include/jsoncons_ext/csv/csv_encoder.hpp:821–889  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

819 }
820
821 JSONCONS_VISITOR_RETURN_TYPE visit_null(semantic_tag, const ser_context&, std::error_code&) override
822 {
823 JSONCONS_ASSERT(!stack_.empty());
824 switch (stack_.back().item_kind_)
825 {
826 case stack_item_kind::flat_object:
827 case stack_item_kind::object:
828 {
829 if (stack_[0].count_ == 0)
830 {
831 if (!has_column_mapping_)
832 {
833 string_type str = stack_.back().column_path_;
834 column_paths_.emplace_back(str);
835 column_path_value_map_.emplace(std::move(str), string_type{alloc_});
836 }
837 }
838 auto it = column_path_value_map_.find(stack_.back().column_path_);
839 if (it != column_path_value_map_.end())
840 {
841 write_null_value(it->second);
842 }
843 break;
844 }
845 case stack_item_kind::flat_row:
846 case stack_item_kind::row:
847 {
848 append_array_path_component();
849 auto it = column_path_value_map_.find(stack_.back().column_path_);
850 if (it != column_path_value_map_.end())
851 {
852 write_null_value(it->second);
853 }
854 break;
855 }
856 case stack_item_kind::stream_flat_row:
857 {
858 if (stack_.back().count_ > 0)
859 {
860 sink_.push_back(field_delimiter_);
861 }
862 value_buffer_.clear();
863 write_null_value(value_buffer_);
864 sink_.append(value_buffer_.data(), value_buffer_.size());
865 break;
866 }
867 case stack_item_kind::column_multivalued_field:
868 case stack_item_kind::multivalued_field:
869 case stack_item_kind::stream_multivalued_field:
870 {
871 if (!value_buffer_.empty())
872 {
873 value_buffer_.push_back(subfield_delimiter_);
874 }
875 write_null_value(value_buffer_);
876 break;
877 }
878 case stack_item_kind::column:

Callers

nothing calls this directly

Calls 12

write_null_valueFunction · 0.85
emplaceMethod · 0.80
emptyMethod · 0.45
backMethod · 0.45
findMethod · 0.45
endMethod · 0.45
push_backMethod · 0.45
clearMethod · 0.45
appendMethod · 0.45
dataMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected