2 * Copyright (c) 2016, Campbell Barton.
4 * Licensed under the Apache License, Version 2.0 (the "Apache License")
5 * with the following modification; you may not use this file except in
6 * compliance with the Apache License and the following modification to it:
7 * Section 6. Trademarks. is deleted and replaced with:
9 * 6. Trademarks. This License does not grant permission to use the trade
10 * names, trademarks, service marks, or product names of the Licensor
11 * and its affiliates, except as required to comply with Section 4(c) of
12 * the License and to reproduce the content of the NOTICE file.
14 * You may obtain a copy of the Apache License at
16 * http://www.apache.org/licenses/LICENSE-2.0
18 * Unless required by applicable law or agreed to in writing, software
19 * distributed under the Apache License with the above modification is
20 * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21 * KIND, either express or implied. See the Apache License for the specific
22 * language governing permissions and limitations under the Apache License.
25 #ifndef __RANGE_TREE_H__
26 #define __RANGE_TREE_H__
32 typedef struct RangeTreeUInt RangeTreeUInt;
34 struct RangeTreeUInt *range_tree_uint_alloc(unsigned int min, unsigned int max);
35 void range_tree_uint_free(struct RangeTreeUInt *rt);
36 struct RangeTreeUInt *range_tree_uint_copy(const struct RangeTreeUInt *rt_src);
38 bool range_tree_uint_has(struct RangeTreeUInt *rt, const unsigned int value);
39 void range_tree_uint_take(struct RangeTreeUInt *rt, const unsigned int value);
40 bool range_tree_uint_retake(struct RangeTreeUInt *rt, const unsigned int value);
41 unsigned int range_tree_uint_take_any(struct RangeTreeUInt *rt);
42 void range_tree_uint_release(struct RangeTreeUInt *rt, const unsigned int value);
48 #endif /* __RANGE_TREE_H__ */