Zig 0.17.0-dev (Split by item) This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig standard library.
std › Build › PackageOptions › UserProvided › eql Private Function eql Doc Source Private Function std.Build.PackageOptions.UserProvided.eql
fn eql (a : UserProvided , b : UserProvided ) bool Params File Build.zig: 285
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315 fn eql (a : UserProvided , b : UserProvided ) bool {
if (std .meta .activeTag (a ) != b ) return false ;
return switch (a ) {
.flag => true ,
.scalar => |a_scalar | return mem .eql (u8 , a_scalar , b .scalar ),
.list => |a_list | {
if (a_list .items .len != b .list .items .len ) return false ;
for (a_list .items , b .list .items ) |a_elem , b_elem | {
if (!mem .eql (u8 , a_elem , b_elem ))
return false ;
}
return true ;
},
.map => |a_map | {
if (a_map .count () != b .map .count ()) return false ;
for (a_map .keys (), a_map .values (), b .map .keys (), b .map .values ()) |a_key , a_val , b_key , b_val | {
if (!mem .eql (u8 , a_key , b_key )) return false ;
if (!a_val .eql (b_val .*)) return false ;
}
return true ;
},
.lazy_path => |a_lazy_path | return a_lazy_path .eql (b .lazy_path ),
.lazy_path_list => |a_lazy_path_list | {
if (a_lazy_path_list .items .len != b .lazy_path_list .items .len ) return false ;
for (a_lazy_path_list .items , b .lazy_path_list .items ) |a_lp , b_lp | {
if (!a_lp .eql (b_lp )) return false ;
}
return true ;
},
};
}