@@ -45,18 +45,132 @@ public bool Contained(Jsonb jb2)
4545 public Jsonb ? Delete ( Text key )
4646 => MEOSFactory . WrapJsonb ( Meos . JsonbDelete ( this . Ptr , key . Ptr ) ) ;
4747
48+ public Jsonb ? DeleteArray ( Text [ ] keys_elems )
49+ {
50+ IntPtr [ ] _keys_elemsValues = new IntPtr [ keys_elems . Length ] ;
51+ for ( int i = 0 ; i < keys_elems . Length ; i ++ )
52+ {
53+ _keys_elemsValues [ i ] = keys_elems [ i ] . Ptr ;
54+ }
55+
56+ GCHandle _keys_elems = GCHandle . Alloc ( _keys_elemsValues , GCHandleType . Pinned ) ;
57+ try
58+ {
59+ return MEOSFactory . WrapJsonb ( Meos . JsonbDeleteArray ( this . Ptr , _keys_elems . AddrOfPinnedObject ( ) , keys_elems . Length ) ) ;
60+ }
61+ finally
62+ {
63+ _keys_elems . Free ( ) ;
64+ }
65+ }
66+
4867 public Jsonb ? DeleteIndex ( int idx )
4968 => MEOSFactory . WrapJsonb ( Meos . JsonbDeleteIndex ( this . Ptr , idx ) ) ;
5069
70+ public Jsonb ? DeletePath ( Text [ ] path_elems )
71+ {
72+ IntPtr [ ] _path_elemsValues = new IntPtr [ path_elems . Length ] ;
73+ for ( int i = 0 ; i < path_elems . Length ; i ++ )
74+ {
75+ _path_elemsValues [ i ] = path_elems [ i ] . Ptr ;
76+ }
77+
78+ GCHandle _path_elems = GCHandle . Alloc ( _path_elemsValues , GCHandleType . Pinned ) ;
79+ try
80+ {
81+ return MEOSFactory . WrapJsonb ( Meos . JsonbDeletePath ( this . Ptr , _path_elems . AddrOfPinnedObject ( ) , path_elems . Length ) ) ;
82+ }
83+ finally
84+ {
85+ _path_elems . Free ( ) ;
86+ }
87+ }
88+
5189 public bool Exists ( Text key )
5290 => Meos . JsonbExists ( this . Ptr , key . Ptr ) ;
5391
92+ public bool ExistsArray ( Text [ ] keys_elems , bool any )
93+ {
94+ IntPtr [ ] _keys_elemsValues = new IntPtr [ keys_elems . Length ] ;
95+ for ( int i = 0 ; i < keys_elems . Length ; i ++ )
96+ {
97+ _keys_elemsValues [ i ] = keys_elems [ i ] . Ptr ;
98+ }
99+
100+ GCHandle _keys_elems = GCHandle . Alloc ( _keys_elemsValues , GCHandleType . Pinned ) ;
101+ try
102+ {
103+ return Meos . JsonbExistsArray ( this . Ptr , _keys_elems . AddrOfPinnedObject ( ) , keys_elems . Length , any ) ;
104+ }
105+ finally
106+ {
107+ _keys_elems . Free ( ) ;
108+ }
109+ }
110+
111+ public Jsonb ? ExtractPath ( Text [ ] path_elems )
112+ {
113+ IntPtr [ ] _path_elemsValues = new IntPtr [ path_elems . Length ] ;
114+ for ( int i = 0 ; i < path_elems . Length ; i ++ )
115+ {
116+ _path_elemsValues [ i ] = path_elems [ i ] . Ptr ;
117+ }
118+
119+ GCHandle _path_elems = GCHandle . Alloc ( _path_elemsValues , GCHandleType . Pinned ) ;
120+ try
121+ {
122+ return MEOSFactory . WrapJsonb ( Meos . JsonbExtractPath ( this . Ptr , _path_elems . AddrOfPinnedObject ( ) , path_elems . Length ) ) ;
123+ }
124+ finally
125+ {
126+ _path_elems . Free ( ) ;
127+ }
128+ }
129+
130+ public Text ? ExtractPathText ( Text [ ] path_elems )
131+ {
132+ IntPtr [ ] _path_elemsValues = new IntPtr [ path_elems . Length ] ;
133+ for ( int i = 0 ; i < path_elems . Length ; i ++ )
134+ {
135+ _path_elemsValues [ i ] = path_elems [ i ] . Ptr ;
136+ }
137+
138+ GCHandle _path_elems = GCHandle . Alloc ( _path_elemsValues , GCHandleType . Pinned ) ;
139+ try
140+ {
141+ return MEOSFactory . WrapText ( Meos . JsonbExtractPathText ( this . Ptr , _path_elems . AddrOfPinnedObject ( ) , path_elems . Length ) ) ;
142+ }
143+ finally
144+ {
145+ _path_elems . Free ( ) ;
146+ }
147+ }
148+
54149 public uint Hash ( )
55150 => Meos . JsonbHash ( this . Ptr ) ;
56151
57152 public ulong HashExtended ( ulong seed )
58153 => Meos . JsonbHashExtended ( this . Ptr , seed ) ;
59154
155+ public Jsonb ? Insert ( Text [ ] path_elems , Jsonb newjb , bool after )
156+ {
157+ IntPtr [ ] _path_elemsValues = new IntPtr [ path_elems . Length ] ;
158+ for ( int i = 0 ; i < path_elems . Length ; i ++ )
159+ {
160+ _path_elemsValues [ i ] = path_elems [ i ] . Ptr ;
161+ }
162+
163+ GCHandle _path_elems = GCHandle . Alloc ( _path_elemsValues , GCHandleType . Pinned ) ;
164+ try
165+ {
166+ return MEOSFactory . WrapJsonb ( Meos . JsonbInsert ( this . Ptr , _path_elems . AddrOfPinnedObject ( ) , path_elems . Length , newjb . Ptr , after ) ) ;
167+ }
168+ finally
169+ {
170+ _path_elems . Free ( ) ;
171+ }
172+ }
173+
60174 public Jsonb ? ObjectField ( Text key )
61175 => MEOSFactory . WrapJsonb ( Meos . JsonbObjectField ( this . Ptr , key . Ptr ) ) ;
62176
@@ -72,6 +186,44 @@ public string Out()
72186 public Text ? Pretty ( )
73187 => MEOSFactory . WrapText ( Meos . JsonbPretty ( this . Ptr ) ) ;
74188
189+ public Jsonb ? Set ( Text [ ] path_elems , Jsonb newjb , bool create )
190+ {
191+ IntPtr [ ] _path_elemsValues = new IntPtr [ path_elems . Length ] ;
192+ for ( int i = 0 ; i < path_elems . Length ; i ++ )
193+ {
194+ _path_elemsValues [ i ] = path_elems [ i ] . Ptr ;
195+ }
196+
197+ GCHandle _path_elems = GCHandle . Alloc ( _path_elemsValues , GCHandleType . Pinned ) ;
198+ try
199+ {
200+ return MEOSFactory . WrapJsonb ( Meos . JsonbSet ( this . Ptr , _path_elems . AddrOfPinnedObject ( ) , path_elems . Length , newjb . Ptr , create ) ) ;
201+ }
202+ finally
203+ {
204+ _path_elems . Free ( ) ;
205+ }
206+ }
207+
208+ public Jsonb ? SetLax ( Text [ ] path_elems , Jsonb newjb , bool create , Text handle_null )
209+ {
210+ IntPtr [ ] _path_elemsValues = new IntPtr [ path_elems . Length ] ;
211+ for ( int i = 0 ; i < path_elems . Length ; i ++ )
212+ {
213+ _path_elemsValues [ i ] = path_elems [ i ] . Ptr ;
214+ }
215+
216+ GCHandle _path_elems = GCHandle . Alloc ( _path_elemsValues , GCHandleType . Pinned ) ;
217+ try
218+ {
219+ return MEOSFactory . WrapJsonb ( Meos . JsonbSetLax ( this . Ptr , _path_elems . AddrOfPinnedObject ( ) , path_elems . Length , newjb . Ptr , create , handle_null . Ptr ) ) ;
220+ }
221+ finally
222+ {
223+ _path_elems . Free ( ) ;
224+ }
225+ }
226+
75227 public Jsonb ? StripNulls ( bool strip_in_arrays )
76228 => MEOSFactory . WrapJsonb ( Meos . JsonbStripNulls ( this . Ptr , strip_in_arrays ) ) ;
77229
0 commit comments