util/IntrusiveHashSet: add insert_check() documentation
This commit is contained in:
		
				
					committed by
					
						
						Max Kellermann
					
				
			
			
				
	
			
			
			
						parent
						
							91437d9e63
						
					
				
				
					commit
					e133f621a4
				
			@@ -213,6 +213,13 @@ public:
 | 
				
			|||||||
		return Bucket::iterator_to(item);
 | 
							return Bucket::iterator_to(item);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Prepare insertion of a new item.  If the key already
 | 
				
			||||||
 | 
						 * exists, return an iterator to the existing item and
 | 
				
			||||||
 | 
						 * `false`.  If the key does not exist, return an iterator to
 | 
				
			||||||
 | 
						 * the bucket where the new item may be inserted using
 | 
				
			||||||
 | 
						 * insert() and `true`.
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
	[[nodiscard]] [[gnu::pure]]
 | 
						[[nodiscard]] [[gnu::pure]]
 | 
				
			||||||
	constexpr std::pair<bucket_iterator, bool> insert_check(const auto &key) noexcept {
 | 
						constexpr std::pair<bucket_iterator, bool> insert_check(const auto &key) noexcept {
 | 
				
			||||||
		auto &bucket = GetBucket(key);
 | 
							auto &bucket = GetBucket(key);
 | 
				
			||||||
@@ -223,11 +230,20 @@ public:
 | 
				
			|||||||
		return {bucket.begin(), true};
 | 
							return {bucket.begin(), true};
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Finish the insertion if insert_check() has returned true.
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param bucket the bucket returned by insert_check()
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
	constexpr void insert(bucket_iterator bucket, reference item) noexcept {
 | 
						constexpr void insert(bucket_iterator bucket, reference item) noexcept {
 | 
				
			||||||
		++counter;
 | 
							++counter;
 | 
				
			||||||
		GetBucket(item).insert(bucket, item);
 | 
							GetBucket(item).insert(bucket, item);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Insert a new item without checking whether the key already
 | 
				
			||||||
 | 
						 * exists.
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
	constexpr void insert(reference item) noexcept {
 | 
						constexpr void insert(reference item) noexcept {
 | 
				
			||||||
		++counter;
 | 
							++counter;
 | 
				
			||||||
		GetBucket(item).push_front(item);
 | 
							GetBucket(item).push_front(item);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user