2020-03-15 17:39:15 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								/*
							 | 
						
					
						
							
								
									
										
										
										
											2020-04-16 03:42:30 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    Copyright (c) 2006-2020 Chung, Hyung-Hwan. All rights reserved.
							 | 
						
					
						
							
								
									
										
										
										
											2020-03-15 17:39:15 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    Redistribution and use in source and binary forms, with or without
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    modification, are permitted provided that the following conditions
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    are met:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    1. Redistributions of source code must retain the above copyright
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								       notice, this list of conditions and the following disclaimer.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    2. Redistributions in binary form must reproduce the above copyright
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								       notice, this list of conditions and the following disclaimer in the
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								       documentation and/or other materials provided with the distribution.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 */
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#ifndef _HAWK_MAP_H_
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#define _HAWK_MAP_H_
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-02 22:47:30 +09:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								/*
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 * it is a convenience header file to switch easily between a red-black tree
							 | 
						
					
						
							
								
									
										
										
										
											2020-03-15 17:39:15 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 * and a hash table. You must define either HAWK_MAP_IS_HTB or HAWK_MAP_IS_RBT
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 * before including this file.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 */
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#if defined(HAWK_MAP_IS_HTB)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	include <hawk-htb.h>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_STYLE_DEFAULT                    HAWK_HTB_STYLE_DEFAULT
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_STYLE_INLINE_COPIERS             HAWK_HTB_STYLE_INLINE_COPIERS
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_STYLE_INLINE_KEY_COPIER          HAWK_HTB_STYLE_INLINE_KEY_COPIER
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_STYLE_INLINE_VALUE_COPIER        HAWK_HTB_STYLE_INLINE_VALUE_COPIER
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-24 16:43:05 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#	define hawk_get_map_style(kind)                  hawk_get_htb_style(kind)
							 | 
						
					
						
							
								
									
										
										
										
											2020-03-15 17:39:15 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_open(mmgr,ext,capa,factor,ks,vs) hawk_htb_open(mmgr,ext,capa,factor,ks,vs)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_close(map)                       hawk_htb_close(map)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_init(map,mmgr,capa,factor,ks,vs) hawk_htb_init(map,mmgr,capa,factor,ks,vs)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_fini(map)                        hawk_htb_fini(map)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_getxtn(map)                      hawk_htb_getxtn(map)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_getsize(map)                     hawk_htb_getsize(map)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_getcapa(map)                     hawk_htb_getcapa(map)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_getstyle(map)                    hawk_htb_getstyle(map)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_setstyle(map,cbs)                hawk_htb_setstyle(map,cbs)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_search(map,kptr,klen)            hawk_htb_search(map,kptr,klen)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_upsert(map,kptr,klen,vptr,vlen)  hawk_htb_upsert(map,kptr,klen,vptr,vlen)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_ensert(map,kptr,klen,vptr,vlen)  hawk_htb_ensert(map,kptr,klen,vptr,vlen)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_insert(map,kptr,klen,vptr,vlen)  hawk_htb_insert(map,kptr,klen,vptr,vlen)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_update(map,kptr,klen,vptr,vlen)  hawk_htb_update(map,kptr,klen,vptr,vlen)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_cbsert(map,kptr,klen,cb,ctx)     hawk_htb_cbsert(map,kptr,klen,cb,ctx)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_delete(map,kptr,klen)            hawk_htb_delete(map,kptr,klen)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_clear(map)                       hawk_htb_clear(map)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_init_map_itr(itr,dir)                hawk_init_htb_itr(itr) /* dir not used. not supported */
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_getfirstpair(map,itr)            hawk_htb_getfirstpair(map,itr)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_getnextpair(map,itr)             hawk_htb_getnextpair(map,itr)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_walk(map,walker,ctx)             hawk_htb_walk(map,walker,ctx)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_WALK_STOP                        HAWK_HTB_WALK_STOP
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_WALK_FORWARD                     HAWK_HTB_WALK_FORWARD
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_walk_t                           hawk_htb_walk_t
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_KEY                              HAWK_HTB_KEY
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_VAL                              HAWK_HTB_VAL
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_id_t                             hawk_htb_id_t
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_t                                hawk_htb_t
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_pair_t                           hawk_htb_pair_t
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_style_t                          hawk_htb_style_t
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_cbserter_t                       hawk_htb_cbserter_t
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_itr_t                            hawk_htb_itr_t
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_walker_t                         hawk_htb_walker_t
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_COPIER_SIMPLE                    HAWK_HTB_COPIER_SIMPLE
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_COPIER_INLINE                    HAWK_HTB_COPIER_INLINE
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_COPIER_DEFAULT                   HAWK_HTB_COPIER_DEFAULT
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_FREEER_DEFAULT                   HAWK_HTB_FREEER_DEFAULT
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_COMPER_DEFAULT                   HAWK_HTB_COMPER_DEFAULT
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_KEEPER_DEFAULT                   HAWK_HTB_KEEPER_DEFAULT
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_SIZER_DEFAULT                    HAWK_HTB_SIZER_DEFAULT
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_HASHER_DEFAULT                   HAWK_HTB_HASHER_DEFAULT
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_SIZE(map)                        HAWK_HTB_SIZE(map)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_KCOPIER(map)                     HAWK_HTB_KCOPIER(map)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_VCOPIER(map)                     HAWK_HTB_VCOPIER(map)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_KFREEER(map)                     HAWK_HTB_KFREEER(map)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_VFREEER(map)                     HAWK_HTB_VFREEER(map)
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-02 22:47:30 +09:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_COMPER(map)                      HAWK_HTB_COMPER(map)
							 | 
						
					
						
							
								
									
										
										
										
											2020-03-15 17:39:15 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_KEEPER(map)                      HAWK_HTB_KEEPER(map)
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-02 22:47:30 +09:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_KSCALE(map)                      HAWK_HTB_KSCALE(map)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_VSCALE(map)                      HAWK_HTB_VSCALE(map)
							 | 
						
					
						
							
								
									
										
										
										
											2020-03-15 17:39:15 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_KPTL(p)                          HAWK_HTB_KPTL(p)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_VPTL(p)                          HAWK_HTB_VPTL(p)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_KPTR(p)                          HAWK_HTB_KPTR(p)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_KLEN(p)                          HAWK_HTB_KLEN(p)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_VPTR(p)                          HAWK_HTB_VPTR(p)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_VLEN(p)                          HAWK_HTB_VLEN(p)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#elif defined(HAWK_MAP_IS_RBT)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	include <hawk-rbt.h>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_STYLE_DEFAULT                    HAWK_RBT_STYLE_DEFAULT
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_STYLE_INLINE_COPIERS             HAWK_RBT_STYLE_INLINE_COPIERS
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_STYLE_INLINE_KEY_COPIER          HAWK_RBT_STYLE_INLINE_KEY_COPIER
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_STYLE_INLINE_VALUE_COPIER        HAWK_RBT_STYLE_INLINE_VALUE_COPIER
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-24 16:43:05 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#	define hawk_get_map_style(kind)                  hawk_get_rbt_style(kind)
							 | 
						
					
						
							
								
									
										
										
										
											2020-03-15 17:39:15 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_open(mmgr,ext,capa,factor,ks,vs) hawk_rbt_open(mmgr,ext,ks,vs)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_close(map)                       hawk_rbt_close(map)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_init(map,mmgr,capa,factor,ks,vs) hawk_rbt_init(map,mmgr,ks,vs)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_fini(map)                        hawk_rbt_fini(map)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_getxtn(map)                      hawk_rbt_getxtn(map)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_getsize(map)                     hawk_rbt_getsize(map)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_getcapa(map)                     hawk_rbt_getsize(map)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_getstyle(map)                    hawk_rbt_getstyle(map)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_setstyle(map,cbs)                hawk_rbt_setstyle(map,cbs)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_search(map,kptr,klen)            hawk_rbt_search(map,kptr,klen)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_upsert(map,kptr,klen,vptr,vlen)  hawk_rbt_upsert(map,kptr,klen,vptr,vlen)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_ensert(map,kptr,klen,vptr,vlen)  hawk_rbt_ensert(map,kptr,klen,vptr,vlen)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_insert(map,kptr,klen,vptr,vlen)  hawk_rbt_insert(map,kptr,klen,vptr,vlen)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_update(map,kptr,klen,vptr,vlen)  hawk_rbt_update(map,kptr,klen,vptr,vlen)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_cbsert(map,kptr,klen,cb,ctx)     hawk_rbt_cbsert(map,kptr,klen,cb,ctx)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_delete(map,kptr,klen)            hawk_rbt_delete(map,kptr,klen)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_clear(map)                       hawk_rbt_clear(map)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_init_map_itr(itr,dir)                hawk_init_rbt_itr(itr,dir)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_getfirstpair(map,itr)            hawk_rbt_getfirstpair(map,itr)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_getnextpair(map,itr)             hawk_rbt_getnextpair(map,itr)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_walk(map,walker,ctx)             hawk_rbt_walk(map,walker,ctx)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_WALK_STOP                        HAWK_RBT_WALK_STOP
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_WALK_FORWARD                     HAWK_RBT_WALK_FORWARD
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_walk_t                           hawk_rbt_walk_t
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_KEY                              HAWK_RBT_KEY
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_VAL                              HAWK_RBT_VAL
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_id_t                             hawk_rbt_id_t
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_t                                hawk_rbt_t
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_pair_t                           hawk_rbt_pair_t
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_style_t                          hawk_rbt_style_t
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_cbserter_t                       hawk_rbt_cbserter_t
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_itr_t                            hawk_rbt_itr_t
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define hawk_map_walker_t                         hawk_rbt_walker_t
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_COPIER_SIMPLE                    HAWK_RBT_COPIER_SIMPLE
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_COPIER_INLINE                    HAWK_RBT_COPIER_INLINE
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_COPIER_DEFAULT                   HAWK_RBT_COPIER_DEFAULT
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_FREEER_DEFAULT                   HAWK_RBT_FREEER_DEFAULT
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_COMPER_DEFAULT                   HAWK_RBT_COMPER_DEFAULT
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_KEEPER_DEFAULT                   HAWK_RBT_KEEPER_DEFAULT
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_SIZER_DEFAULT                    (HAWK_NULL)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_HASHER_DEFAULT                   (HAWK_NULL)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_SIZE(map)                        HAWK_RBT_SIZE(map)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_KCOPIER(map)                     HAWK_RBT_KCOPIER(map)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_VCOPIER(map)                     HAWK_RBT_VCOPIER(map)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_KFREEER(map)                     HAWK_RBT_KFREEER(map)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_VFREEER(map)                     HAWK_RBT_VFREEER(map)
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-02 22:47:30 +09:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_COMPER(map)                      HAWK_RBT_COMPER(map)
							 | 
						
					
						
							
								
									
										
										
										
											2020-03-15 17:39:15 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_KEEPER(map)                      HAWK_RBT_KEEPER(map)
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-02 22:47:30 +09:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_KSCALE(map)                      HAWK_RBT_KSCALE(map)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_VSCALE(map)                      HAWK_RBT_VSCALE(map)
							 | 
						
					
						
							
								
									
										
										
										
											2020-03-15 17:39:15 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_KPTL(p)                          HAWK_RBT_KPTL(p)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_VPTL(p)                          HAWK_RBT_VPTL(p)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_KPTR(p)                          HAWK_RBT_KPTR(p)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_KLEN(p)                          HAWK_RBT_KLEN(p)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_VPTR(p)                          HAWK_RBT_VPTR(p)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	define HAWK_MAP_VLEN(p)                          HAWK_RBT_VLEN(p)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#else
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#	error define HAWK_MAP_IS_HTB or HAWK_MAP_IS_RBT before including this file
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#endif
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#endif
							 |