diff --git a/coverage/coverage.out b/coverage/coverage.out index 920f803..5bbf28c 100644 --- a/coverage/coverage.out +++ b/coverage/coverage.out @@ -1,268 +1,4 @@ mode: set -github.com/echovault/echovault/src/modules/hash/commands.go:15.105,17.16 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:17.16,19.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:21.2,24.25 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:24.25,26.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:28.2,28.38 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:28.38,30.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:32.2,32.33 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:32.33,34.17 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:34.17,36.4 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:37.3,38.59 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:38.59,40.4 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:41.3,41.59 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:44.2,44.51 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:44.51,46.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:47.2,50.9 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:50.9,52.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:54.2,55.36 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:55.36,56.42 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:56.42,57.26 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:57.26,60.5 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:61.4,61.12 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:63.3,64.13 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:66.2,66.55 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:66.55,68.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:70.2,70.51 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:73.105,75.16 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:75.16,77.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:79.2,82.33 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:82.33,84.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:86.2,86.52 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:86.52,88.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:89.2,92.9 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:92.9,94.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:96.2,99.31 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:99.31,101.19 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:101.19,103.12 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:105.3,105.34 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:105.34,107.12 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:109.3,109.31 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:109.31,111.12 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:113.3,113.35 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:113.35,116.12 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:118.3,118.32 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:121.2,121.25 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:124.108,126.16 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:126.16,128.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:130.2,133.33 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:133.33,135.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:137.2,137.52 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:137.52,139.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:140.2,143.9 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:143.9,145.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:147.2,150.31 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:150.31,152.19 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:152.19,154.12 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:156.3,156.34 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:156.34,158.12 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:160.3,160.35 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:160.35,163.12 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:165.3,165.31 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:165.31,167.12 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:169.3,169.18 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:172.2,172.25 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:175.106,177.16 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:177.16,179.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:181.2,183.33 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:183.33,185.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:187.2,187.52 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:187.52,189.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:190.2,193.9 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:193.9,195.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:197.2,198.27 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:198.27,199.32 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:199.32,201.12 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:203.3,203.33 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:203.33,206.12 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:208.3,208.29 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:208.29,210.4 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:213.2,213.25 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:216.111,218.16 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:218.16,220.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:222.2,225.19 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:225.19,227.17 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:227.17,229.4 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:230.3,230.13 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:230.13,232.4 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:233.3,233.12 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:236.2,237.19 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:237.19,238.46 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:238.46,240.4 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:240.9,242.4 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:245.2,245.33 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:245.33,247.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:249.2,249.52 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:249.52,251.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:252.2,255.9 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:255.9,257.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:260.2,260.24 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:260.24,262.17 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:262.17,264.4 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:265.3,265.34 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:265.34,267.18 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:267.18,268.36 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:268.36,270.14 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:272.5,272.37 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:272.37,275.14 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:277.5,277.33 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:277.33,279.14 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:283.3,283.26 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:287.2,288.29 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:288.29,290.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:293.2,295.43 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:295.43,299.16 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:299.16,300.59 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:300.59,302.5 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:306.2,307.16 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:307.16,309.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:310.2,310.38 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:310.38,312.17 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:312.17,313.41 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:313.41,315.13 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:317.4,317.42 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:317.42,320.13 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:322.4,322.38 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:322.38,324.13 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:329.2,329.25 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:332.105,334.16 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:334.16,336.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:338.2,340.33 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:340.33,342.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:344.2,344.52 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:344.52,346.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:347.2,350.9 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:350.9,352.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:354.2,354.55 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:357.106,359.16 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:359.16,361.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:363.2,365.33 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:365.33,367.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:369.2,369.52 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:369.52,371.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:372.2,375.9 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:375.9,377.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:379.2,380.29 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:380.29,382.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:384.2,384.25 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:387.108,389.16 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:389.16,391.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:393.2,399.47 5 1 -github.com/echovault/echovault/src/modules/hash/commands.go:399.47,401.17 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:401.17,403.4 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:404.3,404.21 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:405.8,407.17 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:407.17,409.4 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:410.3,410.19 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:413.2,413.33 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:413.33,414.62 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:414.62,416.4 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:417.3,419.48 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:419.48,421.57 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:421.57,423.5 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:424.4,424.96 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:425.9,427.57 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:427.57,429.5 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:430.4,430.60 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:434.2,434.52 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:434.52,436.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:437.2,440.9 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:440.9,442.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:444.2,444.24 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:444.24,446.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:448.2,448.28 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:449.10,450.69 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:451.11,453.48 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:453.48,455.4 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:455.9,457.4 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:458.15,460.48 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:460.48,462.4 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:462.9,464.4 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:467.2,467.55 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:467.55,469.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:471.2,471.40 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:471.40,473.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:475.2,476.47 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:479.108,481.16 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:481.16,483.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:485.2,487.33 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:487.33,489.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:491.2,491.52 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:491.52,493.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:494.2,497.9 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:497.9,499.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:501.2,502.33 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:502.33,504.34 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:504.34,506.4 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:507.3,507.35 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:507.35,510.4 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:511.3,511.31 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:511.31,513.4 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:516.2,516.25 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:519.108,521.16 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:521.16,523.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:525.2,528.33 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:528.33,530.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:532.2,532.52 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:532.52,534.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:535.2,538.9 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:538.9,540.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:542.2,542.24 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:542.24,544.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:546.2,546.30 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:549.105,551.16 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:551.16,553.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:555.2,558.33 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:558.33,560.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:562.2,562.51 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:562.51,564.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:565.2,568.9 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:568.9,570.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:572.2,574.31 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:574.31,575.25 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:575.25,578.4 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:581.2,581.55 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:581.55,583.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:585.2,585.51 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:588.33,696.2 1 0 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:8.50,9.18 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:9.18,11.3 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:12.2,12.22 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:15.52,16.18 1 0 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:16.18,18.3 1 0 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:19.2,19.22 1 0 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:22.50,23.18 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:23.18,25.3 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:26.2,26.22 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:29.53,30.18 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:30.18,32.3 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:33.2,33.22 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:36.51,37.19 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:37.19,39.3 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:40.2,40.21 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:43.56,44.34 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:44.34,46.3 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:47.2,47.19 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:47.19,49.3 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:50.2,50.22 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:53.50,54.19 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:54.19,56.3 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:57.2,57.21 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:60.51,61.19 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:61.19,63.3 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:64.2,64.21 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:67.53,68.19 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:68.19,70.3 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:71.2,71.22 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:74.53,75.19 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:75.19,77.3 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:78.2,78.21 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:81.53,82.19 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:82.19,84.3 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:85.2,85.22 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:88.50,89.18 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:89.18,91.3 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:92.2,92.22 1 1 github.com/echovault/echovault/src/modules/acl/acl.go:36.39,41.24 3 1 github.com/echovault/echovault/src/modules/acl/acl.go:41.24,49.3 2 1 github.com/echovault/echovault/src/modules/acl/acl.go:52.2,52.28 1 1 @@ -398,6 +134,10 @@ github.com/echovault/echovault/src/modules/acl/acl.go:433.3,433.25 1 1 github.com/echovault/echovault/src/modules/acl/acl.go:436.2,436.29 1 1 github.com/echovault/echovault/src/modules/acl/acl.go:436.29,437.33 1 1 github.com/echovault/echovault/src/modules/acl/acl.go:437.33,439.4 1 1 +github.com/echovault/echovault/src/modules/acl/acl.go:443.29,445.2 1 1 +github.com/echovault/echovault/src/modules/acl/acl.go:447.31,449.2 1 1 +github.com/echovault/echovault/src/modules/acl/acl.go:451.30,453.2 1 1 +github.com/echovault/echovault/src/modules/acl/acl.go:455.32,457.2 1 1 github.com/echovault/echovault/src/modules/acl/commands.go:18.105,19.34 1 1 github.com/echovault/echovault/src/modules/acl/commands.go:19.34,21.3 1 1 github.com/echovault/echovault/src/modules/acl/commands.go:22.2,23.9 2 1 @@ -696,6 +436,368 @@ github.com/echovault/echovault/src/modules/acl/user.go:275.40,290.2 1 1 github.com/echovault/echovault/src/modules/acl/user.go:292.46,293.24 1 1 github.com/echovault/echovault/src/modules/acl/user.go:293.24,295.3 1 1 github.com/echovault/echovault/src/modules/acl/user.go:296.2,296.26 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:14.102,16.16 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:16.16,18.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:20.2,22.33 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:22.33,25.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:27.2,27.52 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:27.52,29.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:30.2,32.63 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:32.63,34.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:36.2,36.57 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:39.107,41.16 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:41.16,43.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:45.2,48.9 3 1 +github.com/echovault/echovault/src/modules/list/commands.go:48.9,50.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:52.2,52.33 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:52.33,54.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:56.2,56.52 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:56.52,58.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:59.2,62.9 3 1 +github.com/echovault/echovault/src/modules/list/commands.go:62.9,64.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:66.2,66.40 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:66.40,68.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:70.2,70.57 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:73.107,75.16 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:75.16,77.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:79.2,83.24 4 1 +github.com/echovault/echovault/src/modules/list/commands.go:83.24,85.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:87.2,87.33 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:87.33,89.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:91.2,91.52 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:91.52,93.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:94.2,97.9 3 1 +github.com/echovault/echovault/src/modules/list/commands.go:97.9,99.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:102.2,102.40 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:102.40,104.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:107.2,107.51 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:107.51,109.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:111.2,114.15 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:114.15,116.43 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:116.43,119.4 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:120.3,120.20 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:124.2,124.18 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:124.18,126.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:131.2,135.17 4 1 +github.com/echovault/echovault/src/modules/list/commands.go:135.17,137.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:139.2,139.13 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:139.13,142.18 3 1 +github.com/echovault/echovault/src/modules/list/commands.go:142.18,144.4 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:144.9,146.4 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:149.2,149.19 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:152.105,154.16 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:154.16,156.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:158.2,161.9 3 1 +github.com/echovault/echovault/src/modules/list/commands.go:161.9,163.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:165.2,165.33 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:165.33,167.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:169.2,169.51 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:169.51,171.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:172.2,175.9 3 1 +github.com/echovault/echovault/src/modules/list/commands.go:175.9,177.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:179.2,179.40 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:179.40,181.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:183.2,184.55 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:184.55,186.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:188.2,188.38 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:191.106,193.16 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:193.16,195.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:197.2,201.24 4 1 +github.com/echovault/echovault/src/modules/list/commands.go:201.24,203.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:205.2,205.30 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:205.30,207.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:209.2,209.33 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:209.33,211.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:213.2,213.51 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:213.51,215.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:216.2,219.9 3 1 +github.com/echovault/echovault/src/modules/list/commands.go:219.9,221.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:223.2,223.40 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:223.40,225.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:227.2,227.34 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:227.34,228.64 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:228.64,230.4 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:231.3,231.39 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:234.2,234.66 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:234.66,236.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:237.2,237.38 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:240.105,242.16 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:242.16,244.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:246.2,250.9 4 1 +github.com/echovault/echovault/src/modules/list/commands.go:250.9,252.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:254.2,256.33 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:256.33,258.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:260.2,260.51 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:260.51,262.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:263.2,266.9 3 1 +github.com/echovault/echovault/src/modules/list/commands.go:266.9,268.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:270.2,270.9 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:271.10,271.10 0 0 +github.com/echovault/echovault/src/modules/list/commands.go:273.17,275.34 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:275.34,276.26 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:276.26,277.10 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:279.4,279.43 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:279.43,282.5 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:284.17,286.39 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:286.39,287.26 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:287.26,288.10 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:290.4,290.43 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:290.43,293.5 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:297.2,297.61 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:297.61,299.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:301.2,301.55 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:301.55,303.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:305.2,305.38 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:308.106,310.16 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:310.16,312.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:314.2,319.116 5 1 +github.com/echovault/echovault/src/modules/list/commands.go:319.116,321.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:323.2,323.75 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:323.75,325.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:327.2,327.54 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:327.54,329.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:330.2,333.16 3 1 +github.com/echovault/echovault/src/modules/list/commands.go:333.16,335.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:336.2,341.33 4 1 +github.com/echovault/echovault/src/modules/list/commands.go:341.33,343.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:345.2,345.19 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:346.14,348.24 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:348.24,350.4 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:350.9,350.32 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:350.32,352.4 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:353.15,355.24 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:355.24,357.4 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:357.9,357.32 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:357.32,359.4 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:362.2,362.16 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:362.16,364.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:366.2,366.38 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:369.106,371.16 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:371.16,373.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:375.2,377.31 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:377.31,379.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:381.2,383.33 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:383.33,384.34 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:385.17,386.61 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:387.11,388.62 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:388.62,390.5 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:391.4,391.68 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:391.68,393.5 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:395.8,396.52 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:396.52,398.4 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:400.2,405.9 4 1 +github.com/echovault/echovault/src/modules/list/commands.go:405.9,407.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:409.2,409.73 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:409.73,411.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:412.2,412.38 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:415.106,417.16 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:417.16,419.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:421.2,425.31 3 1 +github.com/echovault/echovault/src/modules/list/commands.go:425.31,427.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:429.2,429.33 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:429.33,430.34 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:431.17,432.61 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:433.11,434.62 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:434.62,436.5 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:437.4,438.68 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:438.68,440.5 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:442.8,443.52 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:443.52,445.4 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:446.3,446.35 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:449.2,453.9 3 1 +github.com/echovault/echovault/src/modules/list/commands.go:453.9,455.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:457.2,457.73 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:457.73,459.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:460.2,460.38 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:463.104,465.16 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:465.16,467.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:469.2,471.33 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:471.33,473.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:475.2,475.51 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:475.51,477.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:478.2,481.9 3 1 +github.com/echovault/echovault/src/modules/list/commands.go:481.9,483.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:485.2,485.33 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:486.10,487.60 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:487.60,489.4 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:490.3,490.54 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:491.14,492.70 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:492.70,494.4 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:495.3,495.64 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:499.33,606.2 1 0 +github.com/echovault/echovault/src/modules/list/key_funcs.go:8.51,9.18 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:9.18,11.3 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:12.2,12.30 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:15.49,16.19 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:16.19,18.3 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:19.2,19.30 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:22.50,23.19 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:23.19,25.3 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:26.2,26.30 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:29.52,30.19 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:30.19,32.3 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:33.2,33.30 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:36.52,37.19 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:37.19,39.3 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:40.2,40.30 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:43.50,44.19 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:44.19,46.3 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:47.2,47.30 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:50.51,51.19 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:51.19,53.3 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:54.2,54.30 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:57.50,58.19 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:58.19,60.3 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:61.2,61.30 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:64.51,65.18 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:65.18,67.3 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:68.2,68.30 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:71.51,72.19 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:72.19,74.3 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:75.2,75.38 1 1 +github.com/echovault/echovault/src/modules/pubsub/channel.go:22.51,23.32 1 1 +github.com/echovault/echovault/src/modules/pubsub/channel.go:23.32,25.3 1 1 +github.com/echovault/echovault/src/modules/pubsub/channel.go:28.57,29.32 1 1 +github.com/echovault/echovault/src/modules/pubsub/channel.go:29.32,32.3 2 1 +github.com/echovault/echovault/src/modules/pubsub/channel.go:35.61,46.33 3 1 +github.com/echovault/echovault/src/modules/pubsub/channel.go:46.33,48.3 1 1 +github.com/echovault/echovault/src/modules/pubsub/channel.go:50.2,50.16 1 1 +github.com/echovault/echovault/src/modules/pubsub/channel.go:53.28,54.12 1 1 +github.com/echovault/echovault/src/modules/pubsub/channel.go:54.12,55.7 1 1 +github.com/echovault/echovault/src/modules/pubsub/channel.go:55.7,60.40 3 1 +github.com/echovault/echovault/src/modules/pubsub/channel.go:60.40,61.30 1 1 +github.com/echovault/echovault/src/modules/pubsub/channel.go:61.30,66.21 1 1 +github.com/echovault/echovault/src/modules/pubsub/channel.go:66.21,68.7 1 0 +github.com/echovault/echovault/src/modules/pubsub/channel.go:72.4,72.33 1 1 +github.com/echovault/echovault/src/modules/pubsub/channel.go:77.51,80.40 3 1 +github.com/echovault/echovault/src/modules/pubsub/channel.go:80.40,82.3 1 1 +github.com/echovault/echovault/src/modules/pubsub/channel.go:83.2,84.11 2 1 +github.com/echovault/echovault/src/modules/pubsub/channel.go:87.53,90.40 3 1 +github.com/echovault/echovault/src/modules/pubsub/channel.go:90.40,92.3 1 1 +github.com/echovault/echovault/src/modules/pubsub/channel.go:93.2,94.13 2 1 +github.com/echovault/echovault/src/modules/pubsub/channel.go:97.44,99.2 1 1 +github.com/echovault/echovault/src/modules/pubsub/channel.go:101.36,105.2 3 1 +github.com/echovault/echovault/src/modules/pubsub/channel.go:107.34,111.2 3 1 +github.com/echovault/echovault/src/modules/pubsub/commands.go:12.110,14.9 2 1 +github.com/echovault/echovault/src/modules/pubsub/commands.go:14.9,16.3 1 0 +github.com/echovault/echovault/src/modules/pubsub/commands.go:18.2,20.24 2 1 +github.com/echovault/echovault/src/modules/pubsub/commands.go:20.24,22.3 1 0 +github.com/echovault/echovault/src/modules/pubsub/commands.go:24.2,27.17 3 1 +github.com/echovault/echovault/src/modules/pubsub/commands.go:30.112,32.9 2 1 +github.com/echovault/echovault/src/modules/pubsub/commands.go:32.9,34.3 1 0 +github.com/echovault/echovault/src/modules/pubsub/commands.go:36.2,40.66 3 1 +github.com/echovault/echovault/src/modules/pubsub/commands.go:43.105,45.9 2 1 +github.com/echovault/echovault/src/modules/pubsub/commands.go:45.9,47.3 1 0 +github.com/echovault/echovault/src/modules/pubsub/commands.go:48.2,48.19 1 1 +github.com/echovault/echovault/src/modules/pubsub/commands.go:48.19,50.3 1 0 +github.com/echovault/echovault/src/modules/pubsub/commands.go:51.2,52.38 2 1 +github.com/echovault/echovault/src/modules/pubsub/commands.go:55.110,56.18 1 1 +github.com/echovault/echovault/src/modules/pubsub/commands.go:56.18,58.3 1 0 +github.com/echovault/echovault/src/modules/pubsub/commands.go:60.2,61.9 2 1 +github.com/echovault/echovault/src/modules/pubsub/commands.go:61.9,63.3 1 0 +github.com/echovault/echovault/src/modules/pubsub/commands.go:65.2,66.19 2 1 +github.com/echovault/echovault/src/modules/pubsub/commands.go:66.19,68.3 1 1 +github.com/echovault/echovault/src/modules/pubsub/commands.go:70.2,70.38 1 1 +github.com/echovault/echovault/src/modules/pubsub/commands.go:73.106,75.9 2 1 +github.com/echovault/echovault/src/modules/pubsub/commands.go:75.9,77.3 1 0 +github.com/echovault/echovault/src/modules/pubsub/commands.go:78.2,79.49 2 1 +github.com/echovault/echovault/src/modules/pubsub/commands.go:82.109,84.9 2 1 +github.com/echovault/echovault/src/modules/pubsub/commands.go:84.9,86.3 1 0 +github.com/echovault/echovault/src/modules/pubsub/commands.go:87.2,87.36 1 1 +github.com/echovault/echovault/src/modules/pubsub/commands.go:90.33,97.60 1 1 +github.com/echovault/echovault/src/modules/pubsub/commands.go:97.60,99.21 1 0 +github.com/echovault/echovault/src/modules/pubsub/commands.go:99.21,101.6 1 0 +github.com/echovault/echovault/src/modules/pubsub/commands.go:102.5,102.24 1 0 +github.com/echovault/echovault/src/modules/pubsub/commands.go:111.60,113.21 1 0 +github.com/echovault/echovault/src/modules/pubsub/commands.go:113.21,115.6 1 0 +github.com/echovault/echovault/src/modules/pubsub/commands.go:116.5,116.24 1 0 +github.com/echovault/echovault/src/modules/pubsub/commands.go:125.60,127.22 1 0 +github.com/echovault/echovault/src/modules/pubsub/commands.go:127.22,129.6 1 0 +github.com/echovault/echovault/src/modules/pubsub/commands.go:130.5,130.33 1 0 +github.com/echovault/echovault/src/modules/pubsub/commands.go:141.60,144.5 1 0 +github.com/echovault/echovault/src/modules/pubsub/commands.go:154.60,157.5 1 0 +github.com/echovault/echovault/src/modules/pubsub/commands.go:165.60,165.86 1 0 +github.com/echovault/echovault/src/modules/pubsub/commands.go:166.98,168.5 1 0 +github.com/echovault/echovault/src/modules/pubsub/commands.go:177.62,177.88 1 0 +github.com/echovault/echovault/src/modules/pubsub/commands.go:185.62,185.88 1 0 +github.com/echovault/echovault/src/modules/pubsub/commands.go:194.62,194.85 1 0 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:20.26,25.2 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:27.103,34.17 5 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:34.17,36.3 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:38.2,38.37 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:38.37,42.75 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:42.75,44.4 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:46.3,46.23 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:46.23,49.19 2 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:49.19,51.5 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:51.10,53.5 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:54.4,55.31 2 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:55.31,60.20 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:60.20,62.6 1 0 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:64.4,64.46 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:65.9,67.47 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:67.47,72.20 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:72.20,74.6 1 0 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:80.112,85.17 4 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:85.17,87.3 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:89.2,92.24 3 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:92.24,93.19 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:93.19,96.40 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:96.40,97.31 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:97.31,98.14 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:100.5,100.34 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:100.34,103.6 2 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:105.9,108.40 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:108.40,109.31 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:109.31,110.14 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:112.5,112.34 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:112.34,115.6 2 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:123.2,123.38 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:123.38,124.30 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:124.30,125.54 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:125.54,128.5 2 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:134.2,134.17 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:134.17,135.36 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:135.36,137.40 2 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:137.40,139.58 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:139.58,140.35 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:140.35,143.7 2 0 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:144.6,144.14 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:147.5,147.30 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:147.30,148.35 1 0 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:148.35,151.7 2 0 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:157.2,158.39 2 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:158.39,160.3 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:162.2,162.20 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:165.84,169.38 3 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:169.38,171.29 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:171.29,172.35 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:172.35,174.5 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:175.4,175.12 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:178.3,178.41 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:178.41,180.4 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:184.51,191.19 5 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:191.19,192.39 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:192.39,193.26 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:193.26,196.5 2 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:198.3,199.21 2 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:202.2,204.38 2 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:204.38,206.78 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:206.78,209.12 3 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:212.3,212.50 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:212.50,215.4 2 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:218.2,218.53 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:221.32,226.38 4 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:226.38,227.51 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:227.51,229.4 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:231.2,231.14 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:234.52,239.35 4 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:239.35,241.66 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:241.66,243.4 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:244.3,244.20 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:244.20,246.12 2 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:248.3,248.106 1 1 +github.com/echovault/echovault/src/modules/pubsub/pubsub.go:250.2,250.20 1 1 github.com/echovault/echovault/src/modules/generic/commands.go:18.13,19.34 1 1 github.com/echovault/echovault/src/modules/generic/commands.go:19.34,23.3 2 1 github.com/echovault/echovault/src/modules/generic/commands.go:25.2,26.29 2 0 @@ -950,12 +1052,6 @@ github.com/echovault/echovault/src/modules/generic/utils.go:92.3,94.17 3 1 github.com/echovault/echovault/src/modules/generic/utils.go:94.17,96.4 1 1 github.com/echovault/echovault/src/modules/generic/utils.go:97.3,98.46 2 1 github.com/echovault/echovault/src/modules/generic/utils.go:100.10,101.95 1 1 -github.com/echovault/echovault/src/modules/connection/commands.go:11.105,12.18 1 1 -github.com/echovault/echovault/src/modules/connection/commands.go:13.10,14.50 1 1 -github.com/echovault/echovault/src/modules/connection/commands.go:15.9,16.34 1 1 -github.com/echovault/echovault/src/modules/connection/commands.go:17.9,18.72 1 1 -github.com/echovault/echovault/src/modules/connection/commands.go:22.33,29.60 1 0 -github.com/echovault/echovault/src/modules/connection/commands.go:29.60,31.5 1 0 github.com/echovault/echovault/src/modules/admin/commands.go:14.112,20.29 4 1 github.com/echovault/echovault/src/modules/admin/commands.go:20.29,21.54 1 1 github.com/echovault/echovault/src/modules/admin/commands.go:21.54,27.42 4 1 @@ -1023,225 +1119,276 @@ github.com/echovault/echovault/src/modules/admin/commands.go:241.60,243.5 1 0 github.com/echovault/echovault/src/modules/admin/commands.go:244.110,245.47 1 0 github.com/echovault/echovault/src/modules/admin/commands.go:245.47,247.6 1 0 github.com/echovault/echovault/src/modules/admin/commands.go:248.5,248.41 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:14.102,16.16 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:16.16,18.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:20.2,22.33 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:22.33,25.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:27.2,27.52 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:27.52,29.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:30.2,32.63 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:32.63,34.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:36.2,36.57 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:39.107,41.16 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:41.16,43.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:45.2,48.9 3 1 -github.com/echovault/echovault/src/modules/list/commands.go:48.9,50.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:52.2,52.33 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:52.33,54.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:56.2,56.52 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:56.52,58.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:59.2,62.9 3 1 -github.com/echovault/echovault/src/modules/list/commands.go:62.9,64.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:66.2,66.40 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:66.40,68.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:70.2,70.57 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:73.107,75.16 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:75.16,77.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:79.2,83.24 4 1 -github.com/echovault/echovault/src/modules/list/commands.go:83.24,85.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:87.2,87.33 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:87.33,89.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:91.2,91.52 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:91.52,93.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:94.2,97.9 3 1 -github.com/echovault/echovault/src/modules/list/commands.go:97.9,99.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:102.2,102.40 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:102.40,104.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:107.2,107.51 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:107.51,109.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:111.2,114.15 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:114.15,116.43 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:116.43,119.4 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:120.3,120.20 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:124.2,124.18 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:124.18,126.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:131.2,135.17 4 1 -github.com/echovault/echovault/src/modules/list/commands.go:135.17,137.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:139.2,139.13 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:139.13,142.18 3 1 -github.com/echovault/echovault/src/modules/list/commands.go:142.18,144.4 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:144.9,146.4 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:149.2,149.19 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:152.105,154.16 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:154.16,156.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:158.2,161.9 3 1 -github.com/echovault/echovault/src/modules/list/commands.go:161.9,163.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:165.2,165.33 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:165.33,167.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:169.2,169.51 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:169.51,171.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:172.2,175.9 3 1 -github.com/echovault/echovault/src/modules/list/commands.go:175.9,177.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:179.2,179.40 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:179.40,181.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:183.2,184.55 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:184.55,186.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:188.2,188.38 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:191.106,193.16 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:193.16,195.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:197.2,201.24 4 1 -github.com/echovault/echovault/src/modules/list/commands.go:201.24,203.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:205.2,205.30 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:205.30,207.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:209.2,209.33 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:209.33,211.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:213.2,213.51 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:213.51,215.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:216.2,219.9 3 1 -github.com/echovault/echovault/src/modules/list/commands.go:219.9,221.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:223.2,223.40 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:223.40,225.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:227.2,227.34 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:227.34,228.64 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:228.64,230.4 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:231.3,231.39 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:234.2,234.66 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:234.66,236.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:237.2,237.38 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:240.105,242.16 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:242.16,244.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:246.2,250.9 4 1 -github.com/echovault/echovault/src/modules/list/commands.go:250.9,252.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:254.2,256.33 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:256.33,258.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:260.2,260.51 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:260.51,262.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:263.2,266.9 3 1 -github.com/echovault/echovault/src/modules/list/commands.go:266.9,268.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:270.2,270.9 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:271.10,271.10 0 0 -github.com/echovault/echovault/src/modules/list/commands.go:273.17,275.34 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:275.34,276.26 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:276.26,277.10 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:279.4,279.43 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:279.43,282.5 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:284.17,286.39 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:286.39,287.26 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:287.26,288.10 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:290.4,290.43 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:290.43,293.5 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:297.2,297.61 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:297.61,299.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:301.2,301.55 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:301.55,303.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:305.2,305.38 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:308.106,310.16 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:310.16,312.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:314.2,319.116 5 1 -github.com/echovault/echovault/src/modules/list/commands.go:319.116,321.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:323.2,323.75 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:323.75,325.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:327.2,327.54 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:327.54,329.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:330.2,333.16 3 1 -github.com/echovault/echovault/src/modules/list/commands.go:333.16,335.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:336.2,341.33 4 1 -github.com/echovault/echovault/src/modules/list/commands.go:341.33,343.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:345.2,345.19 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:346.14,348.24 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:348.24,350.4 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:350.9,350.32 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:350.32,352.4 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:353.15,355.24 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:355.24,357.4 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:357.9,357.32 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:357.32,359.4 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:362.2,362.16 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:362.16,364.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:366.2,366.38 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:369.106,371.16 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:371.16,373.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:375.2,377.31 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:377.31,379.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:381.2,383.33 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:383.33,384.34 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:385.17,386.61 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:387.11,388.62 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:388.62,390.5 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:391.4,391.68 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:391.68,393.5 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:395.8,396.52 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:396.52,398.4 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:400.2,405.9 4 1 -github.com/echovault/echovault/src/modules/list/commands.go:405.9,407.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:409.2,409.73 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:409.73,411.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:412.2,412.38 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:415.106,417.16 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:417.16,419.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:421.2,425.31 3 1 -github.com/echovault/echovault/src/modules/list/commands.go:425.31,427.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:429.2,429.33 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:429.33,430.34 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:431.17,432.61 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:433.11,434.62 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:434.62,436.5 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:437.4,438.68 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:438.68,440.5 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:442.8,443.52 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:443.52,445.4 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:446.3,446.35 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:449.2,453.9 3 1 -github.com/echovault/echovault/src/modules/list/commands.go:453.9,455.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:457.2,457.73 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:457.73,459.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:460.2,460.38 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:463.104,465.16 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:465.16,467.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:469.2,471.33 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:471.33,473.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:475.2,475.51 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:475.51,477.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:478.2,481.9 3 1 -github.com/echovault/echovault/src/modules/list/commands.go:481.9,483.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:485.2,485.33 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:486.10,487.60 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:487.60,489.4 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:490.3,490.54 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:491.14,492.70 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:492.70,494.4 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:495.3,495.64 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:499.33,606.2 1 0 -github.com/echovault/echovault/src/modules/list/key_funcs.go:8.51,9.18 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:9.18,11.3 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:12.2,12.30 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:15.49,16.19 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:16.19,18.3 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:19.2,19.30 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:22.50,23.19 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:23.19,25.3 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:26.2,26.30 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:29.52,30.19 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:30.19,32.3 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:33.2,33.30 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:36.52,37.19 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:37.19,39.3 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:40.2,40.30 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:43.50,44.19 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:44.19,46.3 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:47.2,47.30 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:50.51,51.19 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:51.19,53.3 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:54.2,54.30 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:57.50,58.19 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:58.19,60.3 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:61.2,61.30 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:64.51,65.18 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:65.18,67.3 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:68.2,68.30 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:71.51,72.19 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:72.19,74.3 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:75.2,75.38 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:15.105,17.16 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:17.16,19.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:21.2,24.25 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:24.25,26.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:28.2,28.38 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:28.38,30.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:32.2,32.33 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:32.33,34.17 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:34.17,36.4 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:37.3,38.59 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:38.59,40.4 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:41.3,41.59 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:44.2,44.51 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:44.51,46.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:47.2,50.9 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:50.9,52.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:54.2,55.36 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:55.36,56.42 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:56.42,57.26 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:57.26,60.5 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:61.4,61.12 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:63.3,64.13 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:66.2,66.55 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:66.55,68.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:70.2,70.51 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:73.105,75.16 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:75.16,77.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:79.2,82.33 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:82.33,84.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:86.2,86.52 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:86.52,88.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:89.2,92.9 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:92.9,94.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:96.2,99.31 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:99.31,101.19 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:101.19,103.12 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:105.3,105.34 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:105.34,107.12 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:109.3,109.31 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:109.31,111.12 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:113.3,113.35 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:113.35,116.12 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:118.3,118.32 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:121.2,121.25 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:124.108,126.16 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:126.16,128.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:130.2,133.33 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:133.33,135.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:137.2,137.52 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:137.52,139.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:140.2,143.9 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:143.9,145.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:147.2,150.31 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:150.31,152.19 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:152.19,154.12 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:156.3,156.34 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:156.34,158.12 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:160.3,160.35 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:160.35,163.12 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:165.3,165.31 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:165.31,167.12 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:169.3,169.18 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:172.2,172.25 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:175.106,177.16 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:177.16,179.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:181.2,183.33 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:183.33,185.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:187.2,187.52 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:187.52,189.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:190.2,193.9 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:193.9,195.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:197.2,198.27 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:198.27,199.32 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:199.32,201.12 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:203.3,203.33 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:203.33,206.12 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:208.3,208.29 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:208.29,210.4 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:213.2,213.25 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:216.111,218.16 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:218.16,220.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:222.2,225.19 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:225.19,227.17 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:227.17,229.4 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:230.3,230.13 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:230.13,232.4 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:233.3,233.12 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:236.2,237.19 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:237.19,238.46 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:238.46,240.4 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:240.9,242.4 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:245.2,245.33 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:245.33,247.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:249.2,249.52 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:249.52,251.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:252.2,255.9 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:255.9,257.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:260.2,260.24 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:260.24,262.17 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:262.17,264.4 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:265.3,265.34 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:265.34,267.18 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:267.18,268.36 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:268.36,270.14 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:272.5,272.37 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:272.37,275.14 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:277.5,277.33 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:277.33,279.14 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:283.3,283.26 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:287.2,288.29 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:288.29,290.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:293.2,295.43 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:295.43,299.16 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:299.16,300.59 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:300.59,302.5 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:306.2,307.16 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:307.16,309.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:310.2,310.38 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:310.38,312.17 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:312.17,313.41 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:313.41,315.13 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:317.4,317.42 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:317.42,320.13 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:322.4,322.38 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:322.38,324.13 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:329.2,329.25 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:332.105,334.16 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:334.16,336.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:338.2,340.33 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:340.33,342.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:344.2,344.52 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:344.52,346.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:347.2,350.9 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:350.9,352.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:354.2,354.55 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:357.106,359.16 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:359.16,361.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:363.2,365.33 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:365.33,367.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:369.2,369.52 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:369.52,371.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:372.2,375.9 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:375.9,377.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:379.2,380.29 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:380.29,382.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:384.2,384.25 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:387.108,389.16 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:389.16,391.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:393.2,399.47 5 1 +github.com/echovault/echovault/src/modules/hash/commands.go:399.47,401.17 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:401.17,403.4 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:404.3,404.21 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:405.8,407.17 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:407.17,409.4 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:410.3,410.19 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:413.2,413.33 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:413.33,414.62 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:414.62,416.4 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:417.3,419.48 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:419.48,421.57 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:421.57,423.5 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:424.4,424.96 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:425.9,427.57 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:427.57,429.5 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:430.4,430.60 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:434.2,434.52 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:434.52,436.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:437.2,440.9 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:440.9,442.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:444.2,444.24 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:444.24,446.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:448.2,448.28 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:449.10,450.69 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:451.11,453.48 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:453.48,455.4 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:455.9,457.4 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:458.15,460.48 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:460.48,462.4 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:462.9,464.4 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:467.2,467.55 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:467.55,469.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:471.2,471.40 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:471.40,473.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:475.2,476.47 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:479.108,481.16 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:481.16,483.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:485.2,487.33 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:487.33,489.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:491.2,491.52 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:491.52,493.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:494.2,497.9 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:497.9,499.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:501.2,502.33 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:502.33,504.34 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:504.34,506.4 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:507.3,507.35 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:507.35,510.4 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:511.3,511.31 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:511.31,513.4 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:516.2,516.25 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:519.108,521.16 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:521.16,523.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:525.2,528.33 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:528.33,530.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:532.2,532.52 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:532.52,534.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:535.2,538.9 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:538.9,540.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:542.2,542.24 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:542.24,544.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:546.2,546.30 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:549.105,551.16 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:551.16,553.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:555.2,558.33 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:558.33,560.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:562.2,562.51 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:562.51,564.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:565.2,568.9 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:568.9,570.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:572.2,574.31 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:574.31,575.25 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:575.25,578.4 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:581.2,581.55 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:581.55,583.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:585.2,585.51 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:588.33,696.2 1 0 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:8.50,9.18 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:9.18,11.3 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:12.2,12.22 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:15.52,16.18 1 0 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:16.18,18.3 1 0 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:19.2,19.22 1 0 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:22.50,23.18 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:23.18,25.3 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:26.2,26.22 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:29.53,30.18 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:30.18,32.3 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:33.2,33.22 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:36.51,37.19 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:37.19,39.3 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:40.2,40.21 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:43.56,44.34 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:44.34,46.3 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:47.2,47.19 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:47.19,49.3 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:50.2,50.22 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:53.50,54.19 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:54.19,56.3 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:57.2,57.21 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:60.51,61.19 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:61.19,63.3 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:64.2,64.21 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:67.53,68.19 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:68.19,70.3 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:71.2,71.22 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:74.53,75.19 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:75.19,77.3 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:78.2,78.21 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:81.53,82.19 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:82.19,84.3 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:85.2,85.22 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:88.50,89.18 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:89.18,91.3 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:92.2,92.22 1 1 +github.com/echovault/echovault/src/modules/connection/commands.go:11.105,12.18 1 1 +github.com/echovault/echovault/src/modules/connection/commands.go:13.10,14.50 1 1 +github.com/echovault/echovault/src/modules/connection/commands.go:15.9,16.34 1 1 +github.com/echovault/echovault/src/modules/connection/commands.go:17.9,18.72 1 1 +github.com/echovault/echovault/src/modules/connection/commands.go:22.33,29.60 1 0 +github.com/echovault/echovault/src/modules/connection/commands.go:29.60,31.5 1 0 github.com/echovault/echovault/src/modules/set/commands.go:13.105,15.16 2 1 github.com/echovault/echovault/src/modules/set/commands.go:15.16,17.3 1 1 github.com/echovault/echovault/src/modules/set/commands.go:19.2,23.33 3 1 @@ -1652,149 +1799,6 @@ github.com/echovault/echovault/src/modules/set/set.go:170.31,171.19 1 1 github.com/echovault/echovault/src/modules/set/set.go:172.9,173.17 1 1 github.com/echovault/echovault/src/modules/set/set.go:174.9,177.15 3 1 github.com/echovault/echovault/src/modules/set/set.go:178.10,181.28 3 1 -github.com/echovault/echovault/src/modules/pubsub/channel.go:22.51,23.32 1 1 -github.com/echovault/echovault/src/modules/pubsub/channel.go:23.32,25.3 1 1 -github.com/echovault/echovault/src/modules/pubsub/channel.go:28.57,29.32 1 1 -github.com/echovault/echovault/src/modules/pubsub/channel.go:29.32,32.3 2 1 -github.com/echovault/echovault/src/modules/pubsub/channel.go:35.61,46.33 3 1 -github.com/echovault/echovault/src/modules/pubsub/channel.go:46.33,48.3 1 1 -github.com/echovault/echovault/src/modules/pubsub/channel.go:50.2,50.16 1 1 -github.com/echovault/echovault/src/modules/pubsub/channel.go:53.28,54.12 1 1 -github.com/echovault/echovault/src/modules/pubsub/channel.go:54.12,55.7 1 1 -github.com/echovault/echovault/src/modules/pubsub/channel.go:55.7,60.40 3 1 -github.com/echovault/echovault/src/modules/pubsub/channel.go:60.40,61.30 1 1 -github.com/echovault/echovault/src/modules/pubsub/channel.go:61.30,66.21 1 1 -github.com/echovault/echovault/src/modules/pubsub/channel.go:66.21,68.7 1 0 -github.com/echovault/echovault/src/modules/pubsub/channel.go:72.4,72.33 1 1 -github.com/echovault/echovault/src/modules/pubsub/channel.go:77.51,80.40 3 1 -github.com/echovault/echovault/src/modules/pubsub/channel.go:80.40,82.3 1 1 -github.com/echovault/echovault/src/modules/pubsub/channel.go:83.2,84.11 2 1 -github.com/echovault/echovault/src/modules/pubsub/channel.go:87.53,90.40 3 1 -github.com/echovault/echovault/src/modules/pubsub/channel.go:90.40,92.3 1 1 -github.com/echovault/echovault/src/modules/pubsub/channel.go:93.2,94.13 2 1 -github.com/echovault/echovault/src/modules/pubsub/channel.go:97.44,99.2 1 1 -github.com/echovault/echovault/src/modules/pubsub/channel.go:101.36,105.2 3 1 -github.com/echovault/echovault/src/modules/pubsub/channel.go:107.34,111.2 3 1 -github.com/echovault/echovault/src/modules/pubsub/commands.go:12.110,14.9 2 1 -github.com/echovault/echovault/src/modules/pubsub/commands.go:14.9,16.3 1 0 -github.com/echovault/echovault/src/modules/pubsub/commands.go:18.2,20.24 2 1 -github.com/echovault/echovault/src/modules/pubsub/commands.go:20.24,22.3 1 0 -github.com/echovault/echovault/src/modules/pubsub/commands.go:24.2,27.17 3 1 -github.com/echovault/echovault/src/modules/pubsub/commands.go:30.112,32.9 2 1 -github.com/echovault/echovault/src/modules/pubsub/commands.go:32.9,34.3 1 0 -github.com/echovault/echovault/src/modules/pubsub/commands.go:36.2,40.66 3 1 -github.com/echovault/echovault/src/modules/pubsub/commands.go:43.105,45.9 2 1 -github.com/echovault/echovault/src/modules/pubsub/commands.go:45.9,47.3 1 0 -github.com/echovault/echovault/src/modules/pubsub/commands.go:48.2,48.19 1 1 -github.com/echovault/echovault/src/modules/pubsub/commands.go:48.19,50.3 1 0 -github.com/echovault/echovault/src/modules/pubsub/commands.go:51.2,52.38 2 1 -github.com/echovault/echovault/src/modules/pubsub/commands.go:55.110,56.18 1 1 -github.com/echovault/echovault/src/modules/pubsub/commands.go:56.18,58.3 1 0 -github.com/echovault/echovault/src/modules/pubsub/commands.go:60.2,61.9 2 1 -github.com/echovault/echovault/src/modules/pubsub/commands.go:61.9,63.3 1 0 -github.com/echovault/echovault/src/modules/pubsub/commands.go:65.2,66.19 2 1 -github.com/echovault/echovault/src/modules/pubsub/commands.go:66.19,68.3 1 1 -github.com/echovault/echovault/src/modules/pubsub/commands.go:70.2,70.38 1 1 -github.com/echovault/echovault/src/modules/pubsub/commands.go:73.106,75.9 2 1 -github.com/echovault/echovault/src/modules/pubsub/commands.go:75.9,77.3 1 0 -github.com/echovault/echovault/src/modules/pubsub/commands.go:78.2,79.49 2 1 -github.com/echovault/echovault/src/modules/pubsub/commands.go:82.109,84.9 2 1 -github.com/echovault/echovault/src/modules/pubsub/commands.go:84.9,86.3 1 0 -github.com/echovault/echovault/src/modules/pubsub/commands.go:87.2,87.36 1 1 -github.com/echovault/echovault/src/modules/pubsub/commands.go:90.33,97.60 1 1 -github.com/echovault/echovault/src/modules/pubsub/commands.go:97.60,99.21 1 0 -github.com/echovault/echovault/src/modules/pubsub/commands.go:99.21,101.6 1 0 -github.com/echovault/echovault/src/modules/pubsub/commands.go:102.5,102.24 1 0 -github.com/echovault/echovault/src/modules/pubsub/commands.go:111.60,113.21 1 0 -github.com/echovault/echovault/src/modules/pubsub/commands.go:113.21,115.6 1 0 -github.com/echovault/echovault/src/modules/pubsub/commands.go:116.5,116.24 1 0 -github.com/echovault/echovault/src/modules/pubsub/commands.go:125.60,127.22 1 0 -github.com/echovault/echovault/src/modules/pubsub/commands.go:127.22,129.6 1 0 -github.com/echovault/echovault/src/modules/pubsub/commands.go:130.5,130.33 1 0 -github.com/echovault/echovault/src/modules/pubsub/commands.go:141.60,144.5 1 0 -github.com/echovault/echovault/src/modules/pubsub/commands.go:154.60,157.5 1 0 -github.com/echovault/echovault/src/modules/pubsub/commands.go:165.60,165.86 1 0 -github.com/echovault/echovault/src/modules/pubsub/commands.go:166.98,168.5 1 0 -github.com/echovault/echovault/src/modules/pubsub/commands.go:177.62,177.88 1 0 -github.com/echovault/echovault/src/modules/pubsub/commands.go:185.62,185.88 1 0 -github.com/echovault/echovault/src/modules/pubsub/commands.go:194.62,194.85 1 0 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:20.26,25.2 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:27.103,34.17 5 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:34.17,36.3 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:38.2,38.37 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:38.37,42.75 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:42.75,44.4 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:46.3,46.23 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:46.23,49.19 2 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:49.19,51.5 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:51.10,53.5 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:54.4,55.31 2 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:55.31,60.20 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:60.20,62.6 1 0 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:64.4,64.46 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:65.9,67.47 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:67.47,72.20 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:72.20,74.6 1 0 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:80.112,85.17 4 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:85.17,87.3 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:89.2,92.24 3 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:92.24,93.19 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:93.19,96.40 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:96.40,97.31 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:97.31,98.14 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:100.5,100.34 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:100.34,103.6 2 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:105.9,108.40 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:108.40,109.31 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:109.31,110.14 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:112.5,112.34 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:112.34,115.6 2 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:123.2,123.38 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:123.38,124.30 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:124.30,125.54 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:125.54,128.5 2 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:134.2,134.17 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:134.17,135.36 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:135.36,137.40 2 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:137.40,139.58 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:139.58,140.35 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:140.35,143.7 2 0 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:144.6,144.14 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:147.5,147.30 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:147.30,148.35 1 0 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:148.35,151.7 2 0 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:157.2,158.39 2 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:158.39,160.3 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:162.2,162.20 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:165.84,169.38 3 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:169.38,171.29 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:171.29,172.35 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:172.35,174.5 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:175.4,175.12 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:178.3,178.41 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:178.41,180.4 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:184.51,191.19 5 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:191.19,192.39 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:192.39,193.26 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:193.26,196.5 2 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:198.3,199.21 2 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:202.2,204.38 2 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:204.38,206.78 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:206.78,209.12 3 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:212.3,212.50 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:212.50,215.4 2 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:218.2,218.53 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:221.32,226.38 4 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:226.38,227.51 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:227.51,229.4 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:231.2,231.14 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:234.52,239.35 4 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:239.35,241.66 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:241.66,243.4 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:244.3,244.20 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:244.20,246.12 2 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:248.3,248.106 1 1 -github.com/echovault/echovault/src/modules/pubsub/pubsub.go:250.2,250.20 1 1 github.com/echovault/echovault/src/modules/sorted_set/commands.go:16.105,18.16 2 1 github.com/echovault/echovault/src/modules/sorted_set/commands.go:18.16,20.3 1 1 github.com/echovault/echovault/src/modules/sorted_set/commands.go:22.2,31.32 7 1 diff --git a/src/modules/acl/acl.go b/src/modules/acl/acl.go index e5ac76a..3bcfb43 100644 --- a/src/modules/acl/acl.go +++ b/src/modules/acl/acl.go @@ -107,8 +107,8 @@ func NewACL(config utils.Config) *ACL { } func (acl *ACL) RegisterConnection(conn *net.Conn) { - acl.UsersMutex.Lock() - defer acl.UsersMutex.Unlock() + acl.LockUsers() + defer acl.UnlockUsers() // This is called only when a connection is established. defaultUserIdx := slices.IndexFunc(acl.Users, func(user *User) bool { @@ -122,8 +122,8 @@ func (acl *ACL) RegisterConnection(conn *net.Conn) { } func (acl *ACL) SetUser(cmd []string) error { - acl.UsersMutex.Lock() - defer acl.UsersMutex.Unlock() + acl.LockUsers() + defer acl.UnlockUsers() // Check if user with the given username already exists // If it does, replace user variable with this user @@ -154,8 +154,8 @@ func (acl *ACL) SetUser(cmd []string) error { } func (acl *ACL) DeleteUser(_ context.Context, usernames []string) error { - acl.UsersMutex.Lock() - defer acl.UsersMutex.Unlock() + acl.LockUsers() + defer acl.UnlockUsers() var user *User for _, username := range usernames { @@ -188,8 +188,8 @@ func (acl *ACL) DeleteUser(_ context.Context, usernames []string) error { } func (acl *ACL) AuthenticateConnection(_ context.Context, conn *net.Conn, cmd []string) error { - acl.UsersMutex.RLock() - defer acl.UsersMutex.RUnlock() + acl.RLockUsers() + defer acl.RUnlockUsers() var passwords []Password var user *User @@ -264,8 +264,8 @@ func (acl *ACL) AuthenticateConnection(_ context.Context, conn *net.Conn, cmd [] } func (acl *ACL) AuthorizeConnection(conn *net.Conn, cmd []string, command utils.Command, subCommand utils.SubCommand) error { - acl.UsersMutex.RLock() - defer acl.UsersMutex.RUnlock() + acl.RLockUsers() + defer acl.RUnlockUsers() // Extract command, categories, and keys comm := command.Command @@ -439,3 +439,19 @@ func (acl *ACL) CompileGlobs() { } } } + +func (acl *ACL) LockUsers() { + acl.UsersMutex.Lock() +} + +func (acl *ACL) UnlockUsers() { + acl.UsersMutex.Unlock() +} + +func (acl *ACL) RLockUsers() { + acl.UsersMutex.RLock() +} + +func (acl *ACL) RUnlockUsers() { + acl.UsersMutex.RUnlock() +} diff --git a/src/modules/acl/commands.go b/src/modules/acl/commands.go index e0cc084..7297c6e 100644 --- a/src/modules/acl/commands.go +++ b/src/modules/acl/commands.go @@ -359,6 +359,9 @@ func handleLoad(_ context.Context, cmd []string, server utils.Server, _ *net.Con return nil, errors.New("could not load ACL") } + acl.LockUsers() + defer acl.RUnlockUsers() + f, err := os.Open(acl.Config.AclConfig) if err != nil { return nil, err @@ -423,6 +426,9 @@ func handleSave(_ context.Context, cmd []string, server utils.Server, _ *net.Con return nil, errors.New("could not load ACL") } + acl.RLockUsers() + acl.RUnlockUsers() + f, err := os.OpenFile(acl.Config.AclConfig, os.O_WRONLY|os.O_CREATE, os.ModeAppend) if err != nil { return nil, err @@ -566,7 +572,7 @@ If the optional category is provided, list all the commands in the category`, Description: ` (ACL LOAD ) Reloads the rules from the configured ACL config file. When 'MERGE' is passed, users from config file who share a username with users in memory will be merged. -When 'REPLACED' is passed, users from config file who share a username with users in memory will replace the user in memory.`, +When 'REPLACE' is passed, users from config file who share a username with users in memory will replace the user in memory.`, Sync: true, KeyExtractionFunc: func(cmd []string) ([]string, error) { return []string{}, nil diff --git a/src/modules/acl/commands_test.go b/src/modules/acl/commands_test.go index 170b47c..43dee8c 100644 --- a/src/modules/acl/commands_test.go +++ b/src/modules/acl/commands_test.go @@ -23,14 +23,14 @@ func init() { bindAddr = "localhost" port = 7490 - mockServer = setUpServer(bindAddr, port, true) + mockServer = setUpServer(bindAddr, port, true, "") go func() { mockServer.Start(context.Background()) }() } -func setUpServer(bindAddr string, port uint16, requirePass bool) *server.Server { +func setUpServer(bindAddr string, port uint16, requirePass bool, aclConfig string) *server.Server { config := utils.Config{ BindAddr: bindAddr, Port: port, @@ -38,6 +38,7 @@ func setUpServer(bindAddr string, port uint16, requirePass bool) *server.Server EvictionPolicy: utils.NoEviction, RequirePass: requirePass, Password: "password1", + AclConfig: aclConfig, } acl = NewACL(config) @@ -379,7 +380,7 @@ func Test_HandleCat(t *testing.T) { func Test_HandleUsers(t *testing.T) { var port uint16 = 7491 - mockServer := setUpServer(bindAddr, port, false) + mockServer := setUpServer(bindAddr, port, false, "") go func() { mockServer.Start(context.Background()) }() @@ -428,7 +429,7 @@ func Test_HandleUsers(t *testing.T) { func Test_HandleSetUser(t *testing.T) { var port uint16 = 7492 - mockServer := setUpServer(bindAddr, port, false) + mockServer := setUpServer(bindAddr, port, false, "") go func() { mockServer.Start(context.Background()) }() @@ -1017,7 +1018,7 @@ func Test_HandleSetUser(t *testing.T) { func Test_HandleGetUser(t *testing.T) { var port uint16 = 7493 - mockServer := setUpServer(bindAddr, port, false) + mockServer := setUpServer(bindAddr, port, false, "") go func() { mockServer.Start(context.Background()) }() @@ -1163,7 +1164,7 @@ func Test_HandleGetUser(t *testing.T) { func Test_HandleDelUser(t *testing.T) { var port uint16 = 7494 - mockServer := setUpServer(bindAddr, port, false) + mockServer := setUpServer(bindAddr, port, false, "") go func() { mockServer.Start(context.Background()) }() @@ -1304,7 +1305,7 @@ func Test_HandleWhoAmI(t *testing.T) { func Test_HandleList(t *testing.T) { var port uint16 = 7495 - mockServer := setUpServer(bindAddr, port, false) + mockServer := setUpServer(bindAddr, port, false, "") go func() { mockServer.Start(context.Background()) }() @@ -1428,7 +1429,3 @@ func Test_HandleList(t *testing.T) { } } } - -func Test_HandleLoad(t *testing.T) {} - -func Test_HandleSave(t *testing.T) {}