Skip to content

Commit d168387

Browse files
✨ feat: Add convenience api functions empty and from.
Also add static method empty. Still need to figure out what is the best approach between static methods and external helper functions.
1 parent 1400145 commit d168387

File tree

4 files changed

+28
-0
lines changed

4 files changed

+28
-0
lines changed

src/api/empty.js

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import RedBlackTree from '../types/RedBlackTree.js';
2+
3+
/**
4+
* Same as {@link RedBlackTree.empty}.
5+
* @function empty
6+
*/
7+
const empty = RedBlackTree.empty;
8+
export default empty;

src/api/from.js

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import RedBlackTree from '../types/RedBlackTree.js';
2+
3+
/**
4+
* Same as {@link RedBlackTree.from}.
5+
* @function from
6+
*/
7+
const from = RedBlackTree.from;
8+
export default from;

src/index.js

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
export {default as empty} from './api/empty.js';
2+
export {default as from} from './api/from.js';
13
export {default as BLACK} from './color/BLACK.js';
24
export {default as RED} from './color/RED.js';
35
export {default as _debug} from './debug/_debug.js';

src/types/RedBlackTree.js

+10
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,16 @@ export default class RedBlackTree {
165165
return this.items();
166166
}
167167

168+
/**
169+
* Constructs an empty red-black tree.
170+
*
171+
* @param {Function} compare - The comparison function to use.
172+
* @returns {RedBlackTree}
173+
*/
174+
static empty(compare) {
175+
return new RedBlackTree(compare);
176+
}
177+
168178
/**
169179
* Constructs a red-black tree from an input iterable.
170180
*

0 commit comments

Comments
 (0)