155839Sasmodai/* 269626Sru * Copyright (c) 2014-2019 Pavel Kalvoda <me@pavelkalvoda.com> 369626Sru * 475584Sru * libcbor is free software; you can redistribute it and/or modify 575584Sru * it under the terms of the MIT license. See LICENSE for details. 669626Sru */ 769626Sru 855839Sasmodai#include <stdio.h> 955839Sasmodai#include <stdlib.h> 1055839Sasmodai#include "cbor.h" 1155839Sasmodai 1255839Sasmodai/* 1355839Sasmodai * Illustrates how to use the contiguous storage of nested items with 1455839Sasmodai * standard library functions. 1555839Sasmodai */ 1669626Sru 1769626Sruint comparUint(const void *a, const void *b) { 1869626Sru uint8_t av = cbor_get_uint8(*(cbor_item_t **)a), 1975584Sru bv = cbor_get_uint8(*(cbor_item_t **)b); 2075584Sru 2169626Sru if (av < bv) 2269626Sru return -1; 2369626Sru else if (av == bv) 2469626Sru return 0; 2575584Sru else 2675584Sru return 1; 2769626Sru} 2869626Sru 2969626Sruint main(int argc, char *argv[]) { 3069626Sru cbor_item_t *array = cbor_new_definite_array(4); 3169626Sru cbor_array_push(array, cbor_move(cbor_build_uint8(4))); 3275584Sru cbor_array_push(array, cbor_move(cbor_build_uint8(3))); 3375584Sru cbor_array_push(array, cbor_move(cbor_build_uint8(1))); 3469626Sru cbor_array_push(array, cbor_move(cbor_build_uint8(2))); 3575584Sru 3669626Sru qsort(cbor_array_handle(array), cbor_array_size(array), sizeof(cbor_item_t *), 3769626Sru comparUint); 3869626Sru 3969626Sru cbor_describe(array, stdout); 4069626Sru fflush(stdout); 4175584Sru} 4275584Sru