diff --git a/coverage/coverage.out b/coverage/coverage.out index bb7297d..1b345cb 100644 --- a/coverage/coverage.out +++ b/coverage/coverage.out @@ -1,487 +1,10 @@ mode: set -github.com/echovault/echovault/src/modules/hash/commands.go:29.105,31.16 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:31.16,33.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:35.2,38.25 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:38.25,40.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:42.2,42.38 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:42.38,44.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:46.2,46.33 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:46.33,48.17 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:48.17,50.4 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:51.3,52.59 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:52.59,54.4 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:55.3,55.59 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:58.2,58.51 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:58.51,60.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:61.2,64.9 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:64.9,66.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:68.2,69.36 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:69.36,70.42 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:70.42,71.26 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:71.26,74.5 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:75.4,75.12 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:77.3,78.13 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:80.2,80.55 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:80.55,82.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:84.2,84.51 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:87.108,89.16 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:89.16,91.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:93.2,96.33 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:96.33,98.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:100.2,100.52 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:100.52,102.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:103.2,106.9 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:106.9,108.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:110.2,113.31 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:113.31,115.19 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:115.19,117.12 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:119.3,119.34 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:119.34,121.12 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:123.3,123.31 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:123.31,125.12 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:127.3,127.35 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:127.35,130.12 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:132.3,132.32 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:135.2,135.25 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:138.111,140.16 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:140.16,142.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:144.2,147.33 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:147.33,149.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:151.2,151.52 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:151.52,153.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:154.2,157.9 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:157.9,159.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:161.2,164.31 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:164.31,166.19 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:166.19,168.12 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:170.3,170.34 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:170.34,172.12 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:174.3,174.35 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:174.35,177.12 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:179.3,179.31 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:179.31,181.12 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:183.3,183.18 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:186.2,186.25 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:189.109,191.16 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:191.16,193.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:195.2,197.33 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:197.33,199.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:201.2,201.52 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:201.52,203.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:204.2,207.9 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:207.9,209.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:211.2,212.27 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:212.27,213.32 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:213.32,215.12 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:217.3,217.33 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:217.33,220.12 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:222.3,222.29 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:222.29,224.4 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:227.2,227.25 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:230.114,232.16 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:232.16,234.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:236.2,239.19 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:239.19,241.17 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:241.17,243.4 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:244.3,244.13 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:244.13,246.4 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:247.3,247.12 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:250.2,251.19 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:251.19,252.46 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:252.46,254.4 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:254.9,256.4 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:259.2,259.33 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:259.33,261.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:263.2,263.52 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:263.52,265.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:266.2,269.9 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:269.9,271.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:274.2,274.24 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:274.24,276.17 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:276.17,278.4 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:279.3,279.34 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:279.34,281.18 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:281.18,282.36 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:282.36,284.14 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:286.5,286.37 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:286.37,289.14 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:291.5,291.33 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:291.33,293.14 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:297.3,297.26 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:301.2,302.29 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:302.29,304.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:307.2,309.43 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:309.43,313.16 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:313.16,314.59 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:314.59,316.5 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:320.2,321.16 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:321.16,323.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:324.2,324.38 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:324.38,326.17 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:326.17,327.41 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:327.41,329.13 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:331.4,331.42 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:331.42,334.13 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:336.4,336.38 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:336.38,338.13 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:343.2,343.25 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:346.108,348.16 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:348.16,350.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:352.2,354.33 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:354.33,356.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:358.2,358.52 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:358.52,360.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:361.2,364.9 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:364.9,366.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:368.2,368.55 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:371.109,373.16 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:373.16,375.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:377.2,379.33 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:379.33,381.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:383.2,383.52 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:383.52,385.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:386.2,389.9 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:389.9,391.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:393.2,394.29 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:394.29,396.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:398.2,398.25 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:401.111,403.16 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:403.16,405.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:407.2,413.47 5 1 -github.com/echovault/echovault/src/modules/hash/commands.go:413.47,415.17 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:415.17,417.4 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:418.3,418.21 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:419.8,421.17 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:421.17,423.4 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:424.3,424.19 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:427.2,427.33 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:427.33,428.62 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:428.62,430.4 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:431.3,433.48 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:433.48,435.57 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:435.57,437.5 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:438.4,438.96 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:439.9,441.57 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:441.57,443.5 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:444.4,444.60 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:448.2,448.52 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:448.52,450.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:451.2,454.9 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:454.9,456.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:458.2,458.24 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:458.24,460.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:462.2,462.28 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:463.10,464.69 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:465.11,467.48 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:467.48,469.4 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:469.9,471.4 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:472.15,474.48 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:474.48,476.4 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:476.9,478.4 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:481.2,481.55 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:481.55,483.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:485.2,485.40 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:485.40,487.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:489.2,490.47 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:493.111,495.16 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:495.16,497.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:499.2,501.33 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:501.33,503.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:505.2,505.52 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:505.52,507.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:508.2,511.9 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:511.9,513.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:515.2,516.33 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:516.33,518.34 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:518.34,520.4 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:521.3,521.35 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:521.35,524.4 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:525.3,525.31 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:525.31,527.4 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:530.2,530.25 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:533.111,535.16 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:535.16,537.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:539.2,542.33 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:542.33,544.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:546.2,546.52 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:546.52,548.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:549.2,552.9 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:552.9,554.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:556.2,556.24 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:556.24,558.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:560.2,560.30 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:563.108,565.16 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:565.16,567.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:569.2,572.33 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:572.33,574.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:576.2,576.51 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:576.51,578.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:579.2,582.9 3 1 -github.com/echovault/echovault/src/modules/hash/commands.go:582.9,584.3 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:586.2,588.31 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:588.31,589.25 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:589.25,592.4 2 1 -github.com/echovault/echovault/src/modules/hash/commands.go:595.2,595.55 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:595.55,597.3 1 0 -github.com/echovault/echovault/src/modules/hash/commands.go:599.2,599.51 1 1 -github.com/echovault/echovault/src/modules/hash/commands.go:602.33,710.2 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.52,30.18 1 0 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:30.18,32.3 1 0 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:33.2,33.22 1 0 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:36.50,37.18 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:37.18,39.3 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:40.2,40.22 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:43.53,44.18 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:44.18,46.3 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:47.2,47.22 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:50.51,51.19 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:51.19,53.3 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:54.2,54.21 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:57.56,58.34 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:58.34,60.3 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:61.2,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.22 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:67.50,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.21 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:74.51,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.53,89.19 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:89.19,91.3 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:92.2,92.21 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:95.53,96.19 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:96.19,98.3 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:99.2,99.22 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:102.50,103.18 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:103.18,105.3 1 1 -github.com/echovault/echovault/src/modules/hash/key_funcs.go:106.2,106.22 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:28.105,30.16 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:30.16,32.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:34.2,36.33 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:36.33,39.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:41.2,41.52 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:41.52,43.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:44.2,46.63 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:46.63,48.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:50.2,50.57 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:53.110,55.16 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:55.16,57.3 1 1 -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.33 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:66.33,68.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:70.2,70.52 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:70.52,72.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:73.2,76.9 3 1 -github.com/echovault/echovault/src/modules/list/commands.go:76.9,78.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:80.2,80.40 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:80.40,82.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:84.2,84.57 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:87.110,89.16 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:89.16,91.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:93.2,97.24 4 1 -github.com/echovault/echovault/src/modules/list/commands.go:97.24,99.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:101.2,101.33 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:101.33,103.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:105.2,105.52 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:105.52,107.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:108.2,111.9 3 1 -github.com/echovault/echovault/src/modules/list/commands.go:111.9,113.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:116.2,116.40 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:116.40,118.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:121.2,121.51 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:121.51,123.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:125.2,128.15 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:128.15,130.43 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:130.43,133.4 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:134.3,134.20 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:138.2,138.18 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:138.18,140.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:145.2,149.17 4 1 -github.com/echovault/echovault/src/modules/list/commands.go:149.17,151.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:153.2,153.13 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:153.13,156.18 3 1 -github.com/echovault/echovault/src/modules/list/commands.go:156.18,158.4 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:158.9,160.4 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:163.2,163.19 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:166.108,168.16 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:168.16,170.3 1 1 -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.33 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:179.33,181.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:183.2,183.51 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:183.51,185.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:186.2,189.9 3 1 -github.com/echovault/echovault/src/modules/list/commands.go:189.9,191.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:193.2,193.40 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:193.40,195.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:197.2,198.55 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:198.55,200.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:202.2,202.38 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:205.109,207.16 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:207.16,209.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:211.2,215.24 4 1 -github.com/echovault/echovault/src/modules/list/commands.go:215.24,217.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:219.2,219.30 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:219.30,221.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:223.2,223.33 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:223.33,225.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:227.2,227.51 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:227.51,229.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:230.2,233.9 3 1 -github.com/echovault/echovault/src/modules/list/commands.go:233.9,235.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:237.2,237.40 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:237.40,239.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:241.2,241.34 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:241.34,242.64 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:242.64,244.4 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:245.3,245.39 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:248.2,248.66 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:248.66,250.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:251.2,251.38 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:254.108,256.16 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:256.16,258.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:260.2,264.9 4 1 -github.com/echovault/echovault/src/modules/list/commands.go:264.9,266.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:268.2,270.33 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:270.33,272.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:274.2,274.51 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:274.51,276.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:277.2,280.9 3 1 -github.com/echovault/echovault/src/modules/list/commands.go:280.9,282.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:284.2,284.9 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:285.10,285.10 0 0 -github.com/echovault/echovault/src/modules/list/commands.go:287.17,289.34 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:289.34,290.26 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:290.26,291.10 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:293.4,293.43 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:293.43,296.5 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:298.17,300.39 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:300.39,301.26 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:301.26,302.10 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:304.4,304.43 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:304.43,307.5 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:311.2,311.61 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:311.61,313.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:315.2,315.55 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:315.55,317.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:319.2,319.38 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:322.109,324.16 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:324.16,326.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:328.2,333.116 5 1 -github.com/echovault/echovault/src/modules/list/commands.go:333.116,335.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:337.2,337.75 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:337.75,339.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:341.2,341.54 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:341.54,343.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:344.2,347.16 3 1 -github.com/echovault/echovault/src/modules/list/commands.go:347.16,349.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:350.2,355.33 4 1 -github.com/echovault/echovault/src/modules/list/commands.go:355.33,357.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:359.2,359.19 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:360.14,362.24 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:362.24,364.4 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:364.9,364.32 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:364.32,366.4 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:367.15,369.24 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:369.24,371.4 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:371.9,371.32 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:371.32,373.4 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:376.2,376.16 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:376.16,378.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:380.2,380.38 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:383.109,385.16 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:385.16,387.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:389.2,391.31 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:391.31,393.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:395.2,397.33 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:397.33,398.34 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:399.17,400.61 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:401.11,402.62 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:402.62,404.5 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:405.4,405.68 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:405.68,407.5 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:409.8,410.52 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:410.52,412.4 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:414.2,419.9 4 1 -github.com/echovault/echovault/src/modules/list/commands.go:419.9,421.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:423.2,423.73 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:423.73,425.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:426.2,426.38 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:429.109,431.16 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:431.16,433.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:435.2,439.31 3 1 -github.com/echovault/echovault/src/modules/list/commands.go:439.31,441.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:443.2,443.33 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:443.33,444.34 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:445.17,446.61 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:447.11,448.62 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:448.62,450.5 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:451.4,452.68 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:452.68,454.5 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:456.8,457.52 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:457.52,459.4 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:460.3,460.35 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:463.2,467.9 3 1 -github.com/echovault/echovault/src/modules/list/commands.go:467.9,469.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:471.2,471.73 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:471.73,473.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:474.2,474.38 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:477.107,479.16 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:479.16,481.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:483.2,485.33 2 1 -github.com/echovault/echovault/src/modules/list/commands.go:485.33,487.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:489.2,489.51 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:489.51,491.3 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:492.2,495.9 3 1 -github.com/echovault/echovault/src/modules/list/commands.go:495.9,497.3 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:499.2,499.33 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:500.10,501.60 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:501.60,503.4 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:504.3,504.54 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:505.14,506.70 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:506.70,508.4 1 0 -github.com/echovault/echovault/src/modules/list/commands.go:509.3,509.64 1 1 -github.com/echovault/echovault/src/modules/list/commands.go:513.33,620.2 1 0 -github.com/echovault/echovault/src/modules/list/key_funcs.go:22.51,23.18 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:23.18,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.49,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.50,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.52,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.52,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.19 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:65.19,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.50,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.30 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:78.51,79.18 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:79.18,81.3 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:82.2,82.30 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:85.51,86.19 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:86.19,88.3 1 1 -github.com/echovault/echovault/src/modules/list/key_funcs.go:89.2,89.38 1 1 +github.com/echovault/echovault/src/modules/connection/commands.go:25.108,26.18 1 1 +github.com/echovault/echovault/src/modules/connection/commands.go:27.10,28.50 1 1 +github.com/echovault/echovault/src/modules/connection/commands.go:29.9,30.34 1 1 +github.com/echovault/echovault/src/modules/connection/commands.go:31.9,32.72 1 1 +github.com/echovault/echovault/src/modules/connection/commands.go:36.33,43.60 1 0 +github.com/echovault/echovault/src/modules/connection/commands.go:43.60,45.5 1 0 github.com/echovault/echovault/src/modules/acl/acl.go:50.39,55.24 3 1 github.com/echovault/echovault/src/modules/acl/acl.go:55.24,63.3 2 1 github.com/echovault/echovault/src/modules/acl/acl.go:66.2,66.28 1 1 @@ -919,6 +442,270 @@ github.com/echovault/echovault/src/modules/acl/user.go:289.40,304.2 1 1 github.com/echovault/echovault/src/modules/acl/user.go:306.46,307.24 1 1 github.com/echovault/echovault/src/modules/acl/user.go:307.24,309.3 1 1 github.com/echovault/echovault/src/modules/acl/user.go:310.2,310.26 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:29.105,31.16 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:31.16,33.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:35.2,38.25 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:38.25,40.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:42.2,42.38 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:42.38,44.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:46.2,46.33 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:46.33,48.17 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:48.17,50.4 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:51.3,52.59 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:52.59,54.4 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:55.3,55.59 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:58.2,58.51 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:58.51,60.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:61.2,64.9 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:64.9,66.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:68.2,69.36 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:69.36,70.42 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:70.42,71.26 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:71.26,74.5 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:75.4,75.12 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:77.3,78.13 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:80.2,80.55 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:80.55,82.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:84.2,84.51 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:87.108,89.16 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:89.16,91.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:93.2,96.33 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:96.33,98.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:100.2,100.52 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:100.52,102.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:103.2,106.9 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:106.9,108.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:110.2,113.31 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:113.31,115.19 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:115.19,117.12 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:119.3,119.34 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:119.34,121.12 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:123.3,123.31 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:123.31,125.12 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:127.3,127.35 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:127.35,130.12 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:132.3,132.32 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:135.2,135.25 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:138.111,140.16 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:140.16,142.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:144.2,147.33 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:147.33,149.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:151.2,151.52 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:151.52,153.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:154.2,157.9 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:157.9,159.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:161.2,164.31 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:164.31,166.19 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:166.19,168.12 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:170.3,170.34 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:170.34,172.12 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:174.3,174.35 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:174.35,177.12 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:179.3,179.31 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:179.31,181.12 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:183.3,183.18 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:186.2,186.25 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:189.109,191.16 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:191.16,193.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:195.2,197.33 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:197.33,199.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:201.2,201.52 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:201.52,203.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:204.2,207.9 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:207.9,209.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:211.2,212.27 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:212.27,213.32 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:213.32,215.12 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:217.3,217.33 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:217.33,220.12 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:222.3,222.29 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:222.29,224.4 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:227.2,227.25 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:230.114,232.16 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:232.16,234.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:236.2,239.19 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:239.19,241.17 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:241.17,243.4 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:244.3,244.13 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:244.13,246.4 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:247.3,247.12 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:250.2,251.19 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:251.19,252.46 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:252.46,254.4 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:254.9,256.4 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:259.2,259.33 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:259.33,261.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:263.2,263.52 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:263.52,265.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:266.2,269.9 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:269.9,271.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:274.2,274.24 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:274.24,276.17 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:276.17,278.4 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:279.3,279.34 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:279.34,281.18 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:281.18,282.36 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:282.36,284.14 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:286.5,286.37 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:286.37,289.14 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:291.5,291.33 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:291.33,293.14 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:297.3,297.26 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:301.2,302.29 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:302.29,304.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:307.2,309.43 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:309.43,313.16 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:313.16,314.59 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:314.59,316.5 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:320.2,321.16 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:321.16,323.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:324.2,324.38 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:324.38,326.17 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:326.17,327.41 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:327.41,329.13 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:331.4,331.42 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:331.42,334.13 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:336.4,336.38 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:336.38,338.13 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:343.2,343.25 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:346.108,348.16 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:348.16,350.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:352.2,354.33 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:354.33,356.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:358.2,358.52 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:358.52,360.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:361.2,364.9 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:364.9,366.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:368.2,368.55 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:371.109,373.16 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:373.16,375.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:377.2,379.33 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:379.33,381.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:383.2,383.52 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:383.52,385.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:386.2,389.9 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:389.9,391.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:393.2,394.29 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:394.29,396.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:398.2,398.25 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:401.111,403.16 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:403.16,405.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:407.2,413.47 5 1 +github.com/echovault/echovault/src/modules/hash/commands.go:413.47,415.17 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:415.17,417.4 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:418.3,418.21 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:419.8,421.17 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:421.17,423.4 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:424.3,424.19 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:427.2,427.33 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:427.33,428.62 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:428.62,430.4 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:431.3,433.48 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:433.48,435.57 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:435.57,437.5 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:438.4,438.96 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:439.9,441.57 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:441.57,443.5 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:444.4,444.60 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:448.2,448.52 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:448.52,450.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:451.2,454.9 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:454.9,456.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:458.2,458.24 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:458.24,460.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:462.2,462.28 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:463.10,464.69 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:465.11,467.48 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:467.48,469.4 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:469.9,471.4 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:472.15,474.48 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:474.48,476.4 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:476.9,478.4 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:481.2,481.55 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:481.55,483.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:485.2,485.40 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:485.40,487.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:489.2,490.47 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:493.111,495.16 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:495.16,497.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:499.2,501.33 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:501.33,503.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:505.2,505.52 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:505.52,507.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:508.2,511.9 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:511.9,513.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:515.2,516.33 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:516.33,518.34 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:518.34,520.4 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:521.3,521.35 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:521.35,524.4 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:525.3,525.31 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:525.31,527.4 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:530.2,530.25 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:533.111,535.16 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:535.16,537.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:539.2,542.33 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:542.33,544.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:546.2,546.52 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:546.52,548.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:549.2,552.9 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:552.9,554.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:556.2,556.24 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:556.24,558.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:560.2,560.30 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:563.108,565.16 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:565.16,567.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:569.2,572.33 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:572.33,574.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:576.2,576.51 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:576.51,578.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:579.2,582.9 3 1 +github.com/echovault/echovault/src/modules/hash/commands.go:582.9,584.3 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:586.2,588.31 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:588.31,589.25 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:589.25,592.4 2 1 +github.com/echovault/echovault/src/modules/hash/commands.go:595.2,595.55 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:595.55,597.3 1 0 +github.com/echovault/echovault/src/modules/hash/commands.go:599.2,599.51 1 1 +github.com/echovault/echovault/src/modules/hash/commands.go:602.33,710.2 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.52,30.18 1 0 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:30.18,32.3 1 0 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:33.2,33.22 1 0 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:36.50,37.18 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:37.18,39.3 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:40.2,40.22 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:43.53,44.18 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:44.18,46.3 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:47.2,47.22 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:50.51,51.19 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:51.19,53.3 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:54.2,54.21 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:57.56,58.34 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:58.34,60.3 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:61.2,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.22 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:67.50,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.21 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:74.51,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.53,89.19 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:89.19,91.3 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:92.2,92.21 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:95.53,96.19 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:96.19,98.3 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:99.2,99.22 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:102.50,103.18 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:103.18,105.3 1 1 +github.com/echovault/echovault/src/modules/hash/key_funcs.go:106.2,106.22 1 1 github.com/echovault/echovault/src/modules/admin/commands.go:28.115,34.29 4 1 github.com/echovault/echovault/src/modules/admin/commands.go:34.29,35.54 1 1 github.com/echovault/echovault/src/modules/admin/commands.go:35.54,41.42 4 1 @@ -1240,12 +1027,225 @@ github.com/echovault/echovault/src/modules/generic/utils.go:106.3,108.17 3 1 github.com/echovault/echovault/src/modules/generic/utils.go:108.17,110.4 1 1 github.com/echovault/echovault/src/modules/generic/utils.go:111.3,112.46 2 1 github.com/echovault/echovault/src/modules/generic/utils.go:114.10,115.95 1 1 -github.com/echovault/echovault/src/modules/connection/commands.go:25.108,26.18 1 1 -github.com/echovault/echovault/src/modules/connection/commands.go:27.10,28.50 1 1 -github.com/echovault/echovault/src/modules/connection/commands.go:29.9,30.34 1 1 -github.com/echovault/echovault/src/modules/connection/commands.go:31.9,32.72 1 1 -github.com/echovault/echovault/src/modules/connection/commands.go:36.33,43.60 1 0 -github.com/echovault/echovault/src/modules/connection/commands.go:43.60,45.5 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:28.105,30.16 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:30.16,32.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:34.2,36.33 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:36.33,39.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:41.2,41.52 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:41.52,43.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:44.2,46.63 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:46.63,48.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:50.2,50.57 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:53.110,55.16 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:55.16,57.3 1 1 +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.33 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:66.33,68.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:70.2,70.52 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:70.52,72.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:73.2,76.9 3 1 +github.com/echovault/echovault/src/modules/list/commands.go:76.9,78.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:80.2,80.40 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:80.40,82.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:84.2,84.57 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:87.110,89.16 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:89.16,91.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:93.2,97.24 4 1 +github.com/echovault/echovault/src/modules/list/commands.go:97.24,99.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:101.2,101.33 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:101.33,103.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:105.2,105.52 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:105.52,107.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:108.2,111.9 3 1 +github.com/echovault/echovault/src/modules/list/commands.go:111.9,113.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:116.2,116.40 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:116.40,118.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:121.2,121.51 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:121.51,123.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:125.2,128.15 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:128.15,130.43 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:130.43,133.4 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:134.3,134.20 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:138.2,138.18 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:138.18,140.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:145.2,149.17 4 1 +github.com/echovault/echovault/src/modules/list/commands.go:149.17,151.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:153.2,153.13 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:153.13,156.18 3 1 +github.com/echovault/echovault/src/modules/list/commands.go:156.18,158.4 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:158.9,160.4 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:163.2,163.19 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:166.108,168.16 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:168.16,170.3 1 1 +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.33 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:179.33,181.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:183.2,183.51 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:183.51,185.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:186.2,189.9 3 1 +github.com/echovault/echovault/src/modules/list/commands.go:189.9,191.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:193.2,193.40 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:193.40,195.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:197.2,198.55 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:198.55,200.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:202.2,202.38 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:205.109,207.16 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:207.16,209.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:211.2,215.24 4 1 +github.com/echovault/echovault/src/modules/list/commands.go:215.24,217.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:219.2,219.30 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:219.30,221.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:223.2,223.33 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:223.33,225.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:227.2,227.51 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:227.51,229.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:230.2,233.9 3 1 +github.com/echovault/echovault/src/modules/list/commands.go:233.9,235.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:237.2,237.40 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:237.40,239.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:241.2,241.34 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:241.34,242.64 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:242.64,244.4 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:245.3,245.39 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:248.2,248.66 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:248.66,250.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:251.2,251.38 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:254.108,256.16 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:256.16,258.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:260.2,264.9 4 1 +github.com/echovault/echovault/src/modules/list/commands.go:264.9,266.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:268.2,270.33 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:270.33,272.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:274.2,274.51 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:274.51,276.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:277.2,280.9 3 1 +github.com/echovault/echovault/src/modules/list/commands.go:280.9,282.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:284.2,284.9 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:285.10,285.10 0 0 +github.com/echovault/echovault/src/modules/list/commands.go:287.17,289.34 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:289.34,290.26 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:290.26,291.10 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:293.4,293.43 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:293.43,296.5 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:298.17,300.39 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:300.39,301.26 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:301.26,302.10 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:304.4,304.43 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:304.43,307.5 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:311.2,311.61 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:311.61,313.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:315.2,315.55 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:315.55,317.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:319.2,319.38 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:322.109,324.16 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:324.16,326.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:328.2,333.116 5 1 +github.com/echovault/echovault/src/modules/list/commands.go:333.116,335.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:337.2,337.75 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:337.75,339.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:341.2,341.54 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:341.54,343.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:344.2,347.16 3 1 +github.com/echovault/echovault/src/modules/list/commands.go:347.16,349.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:350.2,355.33 4 1 +github.com/echovault/echovault/src/modules/list/commands.go:355.33,357.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:359.2,359.19 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:360.14,362.24 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:362.24,364.4 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:364.9,364.32 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:364.32,366.4 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:367.15,369.24 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:369.24,371.4 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:371.9,371.32 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:371.32,373.4 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:376.2,376.16 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:376.16,378.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:380.2,380.38 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:383.109,385.16 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:385.16,387.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:389.2,391.31 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:391.31,393.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:395.2,397.33 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:397.33,398.34 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:399.17,400.61 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:401.11,402.62 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:402.62,404.5 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:405.4,405.68 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:405.68,407.5 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:409.8,410.52 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:410.52,412.4 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:414.2,419.9 4 1 +github.com/echovault/echovault/src/modules/list/commands.go:419.9,421.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:423.2,423.73 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:423.73,425.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:426.2,426.38 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:429.109,431.16 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:431.16,433.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:435.2,439.31 3 1 +github.com/echovault/echovault/src/modules/list/commands.go:439.31,441.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:443.2,443.33 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:443.33,444.34 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:445.17,446.61 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:447.11,448.62 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:448.62,450.5 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:451.4,452.68 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:452.68,454.5 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:456.8,457.52 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:457.52,459.4 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:460.3,460.35 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:463.2,467.9 3 1 +github.com/echovault/echovault/src/modules/list/commands.go:467.9,469.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:471.2,471.73 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:471.73,473.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:474.2,474.38 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:477.107,479.16 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:479.16,481.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:483.2,485.33 2 1 +github.com/echovault/echovault/src/modules/list/commands.go:485.33,487.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:489.2,489.51 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:489.51,491.3 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:492.2,495.9 3 1 +github.com/echovault/echovault/src/modules/list/commands.go:495.9,497.3 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:499.2,499.33 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:500.10,501.60 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:501.60,503.4 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:504.3,504.54 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:505.14,506.70 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:506.70,508.4 1 0 +github.com/echovault/echovault/src/modules/list/commands.go:509.3,509.64 1 1 +github.com/echovault/echovault/src/modules/list/commands.go:513.33,620.2 1 0 +github.com/echovault/echovault/src/modules/list/key_funcs.go:22.51,23.18 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:23.18,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.49,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.50,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.52,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.52,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.19 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:65.19,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.50,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.30 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:78.51,79.18 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:79.18,81.3 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:82.2,82.30 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:85.51,86.19 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:86.19,88.3 1 1 +github.com/echovault/echovault/src/modules/list/key_funcs.go:89.2,89.38 1 1 github.com/echovault/echovault/src/modules/pubsub/channel.go:36.51,37.32 1 1 github.com/echovault/echovault/src/modules/pubsub/channel.go:37.32,39.3 1 1 github.com/echovault/echovault/src/modules/pubsub/channel.go:42.57,43.32 1 1 diff --git a/src/echovault/echovault.go b/src/echovault/echovault.go index fb7716f..8946ac1 100644 --- a/src/echovault/echovault.go +++ b/src/echovault/echovault.go @@ -70,7 +70,7 @@ type EchoVault struct { raft *raft.Raft // The raft replication layer for the echovault. memberList *memberlist.MemberList // The memberlist layer for the echovault. - CancelCh *chan os.Signal + Context context.Context ACL utils.ACL PubSub utils.PubSub @@ -84,84 +84,108 @@ type EchoVault struct { AOFEngine *aof.Engine // AOF engine for standalone mode } -type Opts struct { - Config utils.Config - ACL utils.ACL - PubSub utils.PubSub - CancelCh *chan os.Signal - Commands []utils.Command +func WithContext(ctx context.Context) func(echovault *EchoVault) { + return func(echovault *EchoVault) { + echovault.Context = ctx + } } -func NewEchoVault(opts Opts) *EchoVault { - server := &EchoVault{ - Config: opts.Config, - ACL: opts.ACL, - PubSub: opts.PubSub, - CancelCh: opts.CancelCh, - Commands: opts.Commands, +func WithConfig(config utils.Config) func(echovault *EchoVault) { + return func(echovault *EchoVault) { + echovault.Config = config + } +} + +func WithACL(acl utils.ACL) func(echovault *EchoVault) { + return func(echovault *EchoVault) { + echovault.ACL = acl + } +} + +func WithPubSub(pubsub utils.PubSub) func(echovault *EchoVault) { + return func(echovault *EchoVault) { + echovault.PubSub = pubsub + } +} + +func WithCommands(commands []utils.Command) func(echovault *EchoVault) { + return func(echovault *EchoVault) { + echovault.Commands = commands + } +} + +func NewEchoVault(options ...func(echovault *EchoVault)) *EchoVault { + echovault := &EchoVault{ + Context: context.Background(), + Commands: make([]utils.Command, 0), store: make(map[string]utils.KeyData), keyLocks: make(map[string]*sync.RWMutex), keyCreationLock: &sync.Mutex{}, } - if server.IsInCluster() { - server.raft = raft.NewRaft(raft.Opts{ - Config: opts.Config, - EchoVault: server, - GetCommand: server.getCommand, - DeleteKey: server.DeleteKey, + + for _, option := range options { + option(echovault) + } + + if echovault.IsInCluster() { + echovault.raft = raft.NewRaft(raft.Opts{ + Config: echovault.Config, + EchoVault: echovault, + GetCommand: echovault.getCommand, + DeleteKey: echovault.DeleteKey, }) - server.memberList = memberlist.NewMemberList(memberlist.Opts{ - Config: opts.Config, - HasJoinedCluster: server.raft.HasJoinedCluster, - AddVoter: server.raft.AddVoter, - RemoveRaftServer: server.raft.RemoveServer, - IsRaftLeader: server.raft.IsRaftLeader, - ApplyMutate: server.raftApplyCommand, - ApplyDeleteKey: server.raftApplyDeleteKey, + echovault.memberList = memberlist.NewMemberList(memberlist.Opts{ + Config: echovault.Config, + HasJoinedCluster: echovault.raft.HasJoinedCluster, + AddVoter: echovault.raft.AddVoter, + RemoveRaftServer: echovault.raft.RemoveServer, + IsRaftLeader: echovault.raft.IsRaftLeader, + ApplyMutate: echovault.raftApplyCommand, + ApplyDeleteKey: echovault.raftApplyDeleteKey, }) } else { // Set up standalone snapshot engine - server.SnapshotEngine = snapshot.NewSnapshotEngine( - snapshot.WithDirectory(opts.Config.DataDir), - snapshot.WithThreshold(opts.Config.SnapShotThreshold), - snapshot.WithInterval(opts.Config.SnapshotInterval), - snapshot.WithGetStateFunc(server.GetState), - snapshot.WithStartSnapshotFunc(server.StartSnapshot), - snapshot.WithFinishSnapshotFunc(server.FinishSnapshot), - snapshot.WithSetLatestSnapshotTimeFunc(server.SetLatestSnapshot), - snapshot.WithGetLatestSnapshotTimeFunc(server.GetLatestSnapshot), + echovault.SnapshotEngine = snapshot.NewSnapshotEngine( + snapshot.WithDirectory(echovault.Config.DataDir), + snapshot.WithThreshold(echovault.Config.SnapShotThreshold), + snapshot.WithInterval(echovault.Config.SnapshotInterval), + snapshot.WithGetStateFunc(echovault.GetState), + snapshot.WithStartSnapshotFunc(echovault.StartSnapshot), + snapshot.WithFinishSnapshotFunc(echovault.FinishSnapshot), + snapshot.WithSetLatestSnapshotTimeFunc(echovault.SetLatestSnapshot), + snapshot.WithGetLatestSnapshotTimeFunc(echovault.GetLatestSnapshot), snapshot.WithSetKeyDataFunc(func(key string, data utils.KeyData) { ctx := context.Background() - if _, err := server.CreateKeyAndLock(ctx, key); err != nil { + if _, err := echovault.CreateKeyAndLock(ctx, key); err != nil { log.Println(err) } - if err := server.SetValue(ctx, key, data.Value); err != nil { + if err := echovault.SetValue(ctx, key, data.Value); err != nil { log.Println(err) } - server.SetExpiry(ctx, key, data.ExpireAt, false) - server.KeyUnlock(ctx, key) + echovault.SetExpiry(ctx, key, data.ExpireAt, false) + echovault.KeyUnlock(ctx, key) }), ) // Set up standalone AOF engine - server.AOFEngine = aof.NewAOFEngine( - aof.WithDirectory(opts.Config.DataDir), - aof.WithStrategy(opts.Config.AOFSyncStrategy), - aof.WithStartRewriteFunc(server.StartRewriteAOF), - aof.WithFinishRewriteFunc(server.FinishRewriteAOF), - aof.WithGetStateFunc(server.GetState), + echovault.AOFEngine = aof.NewAOFEngine( + aof.WithDirectory(echovault.Config.DataDir), + aof.WithStrategy(echovault.Config.AOFSyncStrategy), + aof.WithStartRewriteFunc(echovault.StartRewriteAOF), + aof.WithFinishRewriteFunc(echovault.FinishRewriteAOF), + aof.WithGetStateFunc(echovault.GetState), aof.WithSetKeyDataFunc(func(key string, value utils.KeyData) { ctx := context.Background() - if _, err := server.CreateKeyAndLock(ctx, key); err != nil { + if _, err := echovault.CreateKeyAndLock(ctx, key); err != nil { log.Println(err) } - if err := server.SetValue(ctx, key, value.Value); err != nil { + if err := echovault.SetValue(ctx, key, value.Value); err != nil { log.Println(err) } - server.SetExpiry(ctx, key, value.ExpireAt, false) - server.KeyUnlock(ctx, key) + echovault.SetExpiry(ctx, key, value.ExpireAt, false) + echovault.KeyUnlock(ctx, key) }), aof.WithHandleCommandFunc(func(command []byte) { - _, err := server.handleCommand(context.Background(), command, nil, true) + _, err := echovault.handleCommand(context.Background(), command, nil, true) if err != nil { log.Println(err) } @@ -170,18 +194,18 @@ func NewEchoVault(opts Opts) *EchoVault { } // If eviction policy is not noeviction, start a goroutine to evict keys every 100 milliseconds. - if server.Config.EvictionPolicy != utils.NoEviction { + if echovault.Config.EvictionPolicy != utils.NoEviction { go func() { for { - <-time.After(server.Config.EvictionInterval) - if err := server.evictKeysWithExpiredTTL(context.Background()); err != nil { + <-time.After(echovault.Config.EvictionInterval) + if err := echovault.evictKeysWithExpiredTTL(context.Background()); err != nil { log.Println(err) } } }() } - return server + return echovault } func (server *EchoVault) StartTCP(ctx context.Context) { diff --git a/src/main.go b/src/main.go index 859b49d..8962f86 100644 --- a/src/main.go +++ b/src/main.go @@ -70,13 +70,13 @@ func main() { cancelCh := make(chan os.Signal, 1) signal.Notify(cancelCh, syscall.SIGINT, syscall.SIGTERM, os.Interrupt) - server := echovault.NewEchoVault(echovault.Opts{ - Config: config, - ACL: acl.NewACL(config), - PubSub: pubsub.NewPubSub(), - CancelCh: &cancelCh, - Commands: GetCommands(), - }) + server := echovault.NewEchoVault( + echovault.WithContext(ctx), + echovault.WithConfig(config), + echovault.WithACL(acl.NewACL(config)), + echovault.WithPubSub(pubsub.NewPubSub()), + echovault.WithCommands(GetCommands()), + ) go server.Start(ctx) diff --git a/src/modules/acl/commands_test.go b/src/modules/acl/commands_test.go index fb6406d..995fa85 100644 --- a/src/modules/acl/commands_test.go +++ b/src/modules/acl/commands_test.go @@ -58,11 +58,11 @@ func setUpServer(bindAddr string, port uint16, requirePass bool, aclConfig strin acl = NewACL(config) acl.Users = append(acl.Users, generateInitialTestUsers()...) - return echovault.NewEchoVault(echovault.Opts{ - Config: config, - ACL: acl, - Commands: Commands(), - }) + return echovault.NewEchoVault( + echovault.WithConfig(config), + echovault.WithACL(acl), + echovault.WithCommands(Commands()), + ) } func generateInitialTestUsers() []*User { diff --git a/src/modules/admin/commands_test.go b/src/modules/admin/commands_test.go index 2920d45..24efea2 100644 --- a/src/modules/admin/commands_test.go +++ b/src/modules/admin/commands_test.go @@ -25,13 +25,13 @@ import ( ) func Test_CommandsHandler(t *testing.T) { - mockServer := echovault.NewEchoVault(echovault.Opts{ - Config: utils.Config{ + mockServer := echovault.NewEchoVault( + echovault.WithConfig(utils.Config{ DataDir: "", EvictionPolicy: utils.NoEviction, - }, - Commands: Commands(), - }) + }), + echovault.WithCommands(Commands()), + ) res, err := handleGetAllCommands(context.Background(), []string{"commands"}, mockServer, nil) if err != nil { diff --git a/src/modules/connection/commands_test.go b/src/modules/connection/commands_test.go index 1427253..1babb37 100644 --- a/src/modules/connection/commands_test.go +++ b/src/modules/connection/commands_test.go @@ -27,12 +27,12 @@ import ( var mockServer *echovault.EchoVault func init() { - mockServer = echovault.NewEchoVault(echovault.Opts{ - Config: utils.Config{ + mockServer = echovault.NewEchoVault( + echovault.WithConfig(utils.Config{ DataDir: "", EvictionPolicy: utils.NoEviction, - }, - }) + }), + ) } func Test_HandlePing(t *testing.T) { diff --git a/src/modules/generic/commands_test.go b/src/modules/generic/commands_test.go index ce45bee..023a1c7 100644 --- a/src/modules/generic/commands_test.go +++ b/src/modules/generic/commands_test.go @@ -29,12 +29,12 @@ import ( var mockServer *echovault.EchoVault func init() { - mockServer = echovault.NewEchoVault(echovault.Opts{ - Config: utils.Config{ + mockServer = echovault.NewEchoVault( + echovault.WithConfig(utils.Config{ DataDir: "", EvictionPolicy: utils.NoEviction, - }, - }) + }), + ) } func Test_HandleSET(t *testing.T) { diff --git a/src/modules/hash/commands_test.go b/src/modules/hash/commands_test.go index fb161b1..841765b 100644 --- a/src/modules/hash/commands_test.go +++ b/src/modules/hash/commands_test.go @@ -29,12 +29,12 @@ import ( var mockServer *echovault.EchoVault func init() { - mockServer = echovault.NewEchoVault(echovault.Opts{ - Config: utils.Config{ + mockServer = echovault.NewEchoVault( + echovault.WithConfig(utils.Config{ DataDir: "", EvictionPolicy: utils.NoEviction, - }, - }) + }), + ) } func Test_HandleHSET(t *testing.T) { diff --git a/src/modules/list/commands_test.go b/src/modules/list/commands_test.go index 3799b28..e3f1ede 100644 --- a/src/modules/list/commands_test.go +++ b/src/modules/list/commands_test.go @@ -28,12 +28,12 @@ import ( var mockServer *echovault.EchoVault func init() { - mockServer = echovault.NewEchoVault(echovault.Opts{ - Config: utils.Config{ + mockServer = echovault.NewEchoVault( + echovault.WithConfig(utils.Config{ DataDir: "", EvictionPolicy: utils.NoEviction, - }, - }) + }), + ) } func Test_HandleLLEN(t *testing.T) { diff --git a/src/modules/pubsub/commands_test.go b/src/modules/pubsub/commands_test.go index f4bd271..b3640c4 100644 --- a/src/modules/pubsub/commands_test.go +++ b/src/modules/pubsub/commands_test.go @@ -35,19 +35,23 @@ var port uint16 = 7490 func init() { pubsub = NewPubSub() - mockServer = echovault.NewEchoVault(echovault.Opts{ - PubSub: pubsub, - Commands: Commands(), - Config: utils.Config{ + mockServer = setUpServer(pubsub, bindAddr, port) + go func() { + mockServer.Start(context.Background()) + }() +} + +func setUpServer(pubsub *PubSub, bindAddr string, port uint16) *echovault.EchoVault { + return echovault.NewEchoVault( + echovault.WithPubSub(pubsub), + echovault.WithCommands(Commands()), + echovault.WithConfig(utils.Config{ BindAddr: bindAddr, Port: port, DataDir: "", EvictionPolicy: utils.NoEviction, - }, - }) - go func() { - mockServer.Start(context.Background()) - }() + }), + ) } func Test_HandleSubscribe(t *testing.T) { @@ -492,16 +496,7 @@ func Test_HandlePubSubChannels(t *testing.T) { // Create separate mock echovault for this test var port uint16 = 7590 pubsub = NewPubSub() - mockServer := echovault.NewEchoVault(echovault.Opts{ - PubSub: pubsub, - Commands: Commands(), - Config: utils.Config{ - BindAddr: bindAddr, - Port: port, - DataDir: "", - EvictionPolicy: utils.NoEviction, - }, - }) + mockServer := setUpServer(pubsub, bindAddr, port) ctx := context.WithValue(context.Background(), "test_name", "PUBSUB CHANNELS") @@ -637,16 +632,7 @@ func Test_HandleNumPat(t *testing.T) { // Create separate mock echovault for this test var port uint16 = 7591 pubsub = NewPubSub() - mockServer := echovault.NewEchoVault(echovault.Opts{ - PubSub: pubsub, - Commands: Commands(), - Config: utils.Config{ - BindAddr: bindAddr, - Port: port, - DataDir: "", - EvictionPolicy: utils.NoEviction, - }, - }) + mockServer := setUpServer(pubsub, bindAddr, port) ctx := context.WithValue(context.Background(), "test_name", "PUBSUB NUMPAT") @@ -741,16 +727,7 @@ func Test_HandleNumSub(t *testing.T) { // Create separate mock echovault for this test var port uint16 = 7591 pubsub = NewPubSub() - mockServer := echovault.NewEchoVault(echovault.Opts{ - PubSub: pubsub, - Commands: Commands(), - Config: utils.Config{ - BindAddr: bindAddr, - Port: port, - DataDir: "", - EvictionPolicy: utils.NoEviction, - }, - }) + mockServer := setUpServer(pubsub, bindAddr, port) ctx := context.WithValue(context.Background(), "test_name", "PUBSUB NUMSUB") diff --git a/src/modules/set/commant_test.go b/src/modules/set/commant_test.go index 9a5506c..1ba6afa 100644 --- a/src/modules/set/commant_test.go +++ b/src/modules/set/commant_test.go @@ -29,12 +29,12 @@ import ( var mockServer *echovault.EchoVault func init() { - mockServer = echovault.NewEchoVault(echovault.Opts{ - Config: utils.Config{ + mockServer = echovault.NewEchoVault( + echovault.WithConfig(utils.Config{ DataDir: "", EvictionPolicy: utils.NoEviction, - }, - }) + }), + ) } func Test_HandleSADD(t *testing.T) { diff --git a/src/modules/sorted_set/commands_test.go b/src/modules/sorted_set/commands_test.go index aff9272..4ec3957 100644 --- a/src/modules/sorted_set/commands_test.go +++ b/src/modules/sorted_set/commands_test.go @@ -31,12 +31,12 @@ import ( var mockServer *echovault.EchoVault func init() { - mockServer = echovault.NewEchoVault(echovault.Opts{ - Config: utils.Config{ + mockServer = echovault.NewEchoVault( + echovault.WithConfig(utils.Config{ DataDir: "", EvictionPolicy: utils.NoEviction, - }, - }) + }), + ) } func Test_HandleZADD(t *testing.T) { diff --git a/src/modules/string/commands_test.go b/src/modules/string/commands_test.go index f7984a1..7e75b6b 100644 --- a/src/modules/string/commands_test.go +++ b/src/modules/string/commands_test.go @@ -29,12 +29,12 @@ import ( var mockServer *echovault.EchoVault func init() { - mockServer = echovault.NewEchoVault(echovault.Opts{ - Config: utils.Config{ + mockServer = echovault.NewEchoVault( + echovault.WithConfig(utils.Config{ DataDir: "", EvictionPolicy: utils.NoEviction, - }, - }) + }), + ) } func Test_HandleSetRange(t *testing.T) {