From ffdb897cdaf5d34fd6e061569ea532c2914748da Mon Sep 17 00:00:00 2001 From: Mineplay Date: Fri, 25 Apr 2025 14:44:24 -0500 Subject: [PATCH 01/13] feat(linked list): added linked list datastructure, initialization and destruction --- .../index/Allocator.h.1762D0145907E8DC.idx | Bin 0 -> 942 bytes .../index/DynamicArray.c.4AD21698FC6EDB91.idx | Bin 0 -> 4890 bytes .../index/DynamicArray.h.83D0CABD35D124C4.idx | Bin 0 -> 1970 bytes .../clangd/index/Error.h.EB9FC54DFDA17FC2.idx | Bin 0 -> 588 bytes .../clangd/index/Error.h.F8351C3B8B3344C7.idx | Bin 0 -> 596 bytes .../index/LinkedList.c.D81166C9F6E527C3.idx | Bin 0 -> 1642 bytes .../index/LinkedList.h.874993982F1D060C.idx | Bin 0 -> 1240 bytes .../clangd/index/Main.c.3B29896BB83AC389.idx | Bin 0 -> 1330 bytes .../index/Memory.h.4C603E058198611C.idx | Bin 0 -> 832 bytes .../clangd/index/Queue.c.05F0749C9DEA8BEB.idx | Bin 0 -> 2540 bytes .../clangd/index/Queue.h.0FDB3A51CACEA373.idx | Bin 0 -> 1510 bytes .../clangd/index/Stack.c.C4C7FD383A3A2CFD.idx | Bin 0 -> 2140 bytes .../clangd/index/Stack.h.FBE39392F0B9E960.idx | Bin 0 -> 1382 bytes .gitignore | 3 +- Include/Fledasty/Core/DynamicArray.h | 10 +- Include/Fledasty/Core/LinkedList.h | 44 +++++++++ Include/Fledasty/Core/Queue.h | 2 +- Include/Fledasty/Core/Stack.h | 2 +- Src/Core/DynamicArray.c | 4 +- Src/Core/LinkedList.c | 88 ++++++++++++++++++ Src/Core/Queue.c | 2 +- Src/Core/Stack.c | 2 +- Tests/Main.c | 6 ++ 23 files changed, 151 insertions(+), 12 deletions(-) create mode 100644 .cache/clangd/index/Allocator.h.1762D0145907E8DC.idx create mode 100644 .cache/clangd/index/DynamicArray.c.4AD21698FC6EDB91.idx create mode 100644 .cache/clangd/index/DynamicArray.h.83D0CABD35D124C4.idx create mode 100644 .cache/clangd/index/Error.h.EB9FC54DFDA17FC2.idx create mode 100644 .cache/clangd/index/Error.h.F8351C3B8B3344C7.idx create mode 100644 .cache/clangd/index/LinkedList.c.D81166C9F6E527C3.idx create mode 100644 .cache/clangd/index/LinkedList.h.874993982F1D060C.idx create mode 100644 .cache/clangd/index/Main.c.3B29896BB83AC389.idx create mode 100644 .cache/clangd/index/Memory.h.4C603E058198611C.idx create mode 100644 .cache/clangd/index/Queue.c.05F0749C9DEA8BEB.idx create mode 100644 .cache/clangd/index/Queue.h.0FDB3A51CACEA373.idx create mode 100644 .cache/clangd/index/Stack.c.C4C7FD383A3A2CFD.idx create mode 100644 .cache/clangd/index/Stack.h.FBE39392F0B9E960.idx create mode 100644 Include/Fledasty/Core/LinkedList.h create mode 100644 Src/Core/LinkedList.c diff --git a/.cache/clangd/index/Allocator.h.1762D0145907E8DC.idx b/.cache/clangd/index/Allocator.h.1762D0145907E8DC.idx new file mode 100644 index 0000000000000000000000000000000000000000..ae9048eeb462d32a63a7032408112b79a7962e67 GIT binary patch literal 942 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 Z5yUAjN-pLGF*w{3-)*+{SUHD*0RUD?oW}qF literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/Error.h.F8351C3B8B3344C7.idx b/.cache/clangd/index/Error.h.F8351C3B8B3344C7.idx new file mode 100644 index 0000000000000000000000000000000000000000..4ce382cb96718cbae4e2a857d81046c7de1180e8 GIT binary patch literal 596 zcmWIYbaV4zVqkDi@vO*AElFfyU|j?oZb=|H0O}$)b9@hxi>S2TssuU!rZr(cIW?}`)Z!mqh@*eUiqQ_=-JKZl?&`Uf=~6fzfm_R5{kIGXKYT5Rin}H3eK%PmSA54H1FfafeS(KVqyb#GZj9d_30EIvR<_DlK z$O8~T1_qeRfx;kX!-Qe(1qy>43loO95-1FEB22i~j)!BrL-u>1usDaf7)%)EWS}s} gy)a>hqSTy35U02(xtJTo;P}4Iq4ZcR+dKva0NkgU;{X5v literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/LinkedList.c.D81166C9F6E527C3.idx b/.cache/clangd/index/LinkedList.c.D81166C9F6E527C3.idx new file mode 100644 index 0000000000000000000000000000000000000000..1a34097d7834ffa0a7218883cf19bbabce01db61 GIT binary patch literal 1642 zcmWIYbaP8$V_936^Azq z&oBMh_f@dodFm$7;L=e4`kPA|7rZm_na&xezW8Qaea8CtR^q8sLFrwySWRG9a{N`)6d+yE=%d(p=_=w59O4#&5=EG z{cbpgZ(SeXeeuoxHK|+0Keg_Sak|Fdv5%8&$x(xQx9!#QO;+x>kl5^*V(!{gJMG)UpT+Iz z&U60YIHRbbw7PaH_qiKuLtf3{-pKgvd(52F?WKuV_}}d_&p!S-Z(ZcSz&8GX-y8lg zY+v3Y5_*59@m;?EcW%zQSNCda>x`y&Ikk(4PQHJp9F6y%f5V-jxH31%2^gb7q1?O0 zJZeLE7-Sh3WUTqDwInq8G_@EwnHd?x#2F=6pK)pin?KxF$HO28R3OVIt1F?wr=iQh z$-)FtP?VZhe1VyP!9+%ynYa2F2NREste&g`T%U}!wzVzH8WYlYlZvE@EKHb3Mnh5qiKlI$Z3C0L$hNxSqlu;t z&@pO~YBDfk9vM?fQ#j96mbYW7ii-_Uk&cH>7($V*oURUxH@QNJQ|;sGJ(hks0MB>$I_aXUM*G|_TA*mOn zmki^<%w^;PM-VX9z~FLpj?22@dkKs@GPeA-x-eBRT|m{K*n+7(w9HNJv)TLxpl4Mj zRpnr+cw`(M99?00Mf&7ZD!3j@0V;BnbJKze^T>D$ddtFivbE<5p3FMCg_B1{PFhYL zW&w|kvXHVEf~Tses*2#L$*UlINU^FiZ1QHFX{Kw=@8Ii?qcp5Fkv1UA2A;| zZ_13@&m}(E9|k5X12F?Bgms4EhDeFbMb$+UWBV)~A%?mTBC^aV$ z6f4C=$;H+nh6IR!07)2wfl=n{5@n;W*(cIiBqXJz8KmGc4AKZ@a&AhF5RfY*Ai~DZ R!^_RV$uGz!$|b-m3;=i?62<@k literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/LinkedList.h.874993982F1D060C.idx b/.cache/clangd/index/LinkedList.h.874993982F1D060C.idx new file mode 100644 index 0000000000000000000000000000000000000000..069dd2ab0c12aeeb99b20d472c3e15ea19754b8e GIT binary patch literal 1240 zcmWIYbaT7F!oc91;#rZKT9OE4G6(~4aY<2TE+YfOT4n}@iaARs1^OQ{5NZ7#{Ov%q zKm_xzNAnEWgoPh*KdjVz%PRFg>T=m-&p+?utO62sF8zAj7@4ahL?GSLN zy=vWA;}tu3A@GgX~G;bBUjX3ulyEoNK9T@N2fgwJWWm}9#SbLzF(=iV(_UL0-0)033lJE8F0_H7J$nbj{3eiT_N za^i2;4ma6}Q4=@b*)6?AyRkcA?hOX_HC=&E-3{6D8GEi@afMZyicLB<)pWjkV1j`ItbpMn+v+*ilLAOut(%O|VLr@^P8%fQLP1W|Bk znVZ~av-u5t45A?S%cv@X377?P$}RkMYts*KgWa#lq$t4$A`tGMGUN7hiI4V&`51(O z?pIJ&PzMt*{R~B^X~oNs!kL*1626eoW8mS_(9>{$yOK{+ThkWiDHGcxTsJDCM3{N_ zR9IBFU=ab-lCF`9(4x`EsL{>{QQ+rLM_{VGXcYoL4y}& xF%O?6gC;M`bw#N;i6BFZi;|0#K@7fg`XOxmdu#)kc=;LlK_U>q3u7=a001<`Uz7j< literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/Main.c.3B29896BB83AC389.idx b/.cache/clangd/index/Main.c.3B29896BB83AC389.idx new file mode 100644 index 0000000000000000000000000000000000000000..089ca5b39881d563caa0538afdf6caf5e5bb644d GIT binary patch literal 1330 zcmWIYbaT^UWngel@vO*AElFfyU|)C%uLI%uSqP#>p)m z^BZHiE-D^wx{&3^9#Q3d^U=~z;@fv_d&+CMae~_kNB7Iy4Vi1esEh&!&Vr5&a9(QcD$YwxnszYXsMI!-BYpZ09~-7+us!x}FC z4#l_D+~uj+U@Lvj=DKot8V*wENy*~a{Ju#WrE^w|4xy;d3s5(%Z5wmw3QW# zTY5hy^vqcQg-^WiUx)kJRTt-&u2k3-`jw&J?8W-V$`zG%@_XdwRQ3eQhtxA4zTP95 z|7eTftvBmRthm4KEuG^LBT>-xBT7vO+R;X=ZD6Y&+k_U#{-|$z}50~<{@i2%2 z15%1biUUjlWgws^HLW-l7^XK;?oAL;o-e}4Bb>&PrUcXWg=bOqw!=R`!X6wRsxaY> zr)o9RrsT>1g=JV|WMRTvbuEgjo;oW7g@ajwbz#Cqy|=_u*JT+1g;ix#6=1?DCt6Dx zp0XGNg#%au^kBlQ&f(wWT=e{a!r?68S}@_0kr__EGxOqr!fq^XaF?johu6F;&PZVb zstyhhhpFZfj?|9Shw%&*B+t#7EK&f}Yp!f=1{0Rvuq3E=!JHVWlCgq^5cj*u@$VZ=<^hGHG@_hfhU9&}BDv?t zizPr|R~A#^ub!Gyho9!z%kmplR# zwpO%;tInP;`sK%Jr87Wbdk%YenEVYZT>9_Np({XPX%=Zgm?0L@c8QV$pOuS| F7XT-435Wmy literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/Memory.h.4C603E058198611C.idx b/.cache/clangd/index/Memory.h.4C603E058198611C.idx new file mode 100644 index 0000000000000000000000000000000000000000..1d9db1c369e4645c556caaf9a945e5f14e2ad900 GIT binary patch literal 832 zcmWIYbaS&{W?*nm@vO*AElFfyU|jzz@9Ji2t-5(M$4=pO|JTxziwmCn^oH*L;t;W;r?*X+ zJ-h1@!~X|GlaeIfn@b#1pY*xw@QLXzzZY1a3_rGclX|Des=1NgW~Vw0f?g(A?Vc|u z8ZyhByLkeaqSq=1jY}5{A||$|bvAitR$FmhX+KmGtUIBoGrw<*j)TIltS6OMwjSKw zJnL}YoQiiHPLbkKGbR|G5qrElWsZ-F|K_*6zV{{v@Xh6t=53mLPsRV#|G9yOA06)y zn|4Gk#o)jrK}YYhwH2Ix=cAk7)_1UTdGB#@-S(Gx`%dE%i+(?O5cbU^I7IhwbZV&i zGY0+J@7E~RUpoGv?1k{ziIFplD|3@tfT5cf@NT_@iPR|`1|c911bF3m<>VPSSr{4E zIT?9bSGgu1JEmp-golA2BG169$f_vKz{$qUz`+GnpuEOFX+p})Pdp5QFa-*{3JMII ztV|FSE}5RZ)RY$aorggHra+!o9!Wt_YFhC>pj7PPMbDm2*uu-m!>h=k2#S9&FtI(t zb)zy$goTG!&PC1(?qXhf4|zYh;k*hS3Vv|6@G810dc&M9z$F^9b>aC;MlN1)4skJ< zxiV2xHomIZeUKSwE`uBolDQ1>JV@p;DDc3{g{fiWgoF~*D40b+VQ|<$g<-mY!r%~r z3d4*B3WLJ|DqNJBlL%rK7bO?#gBaW(0s?p~(jKlp(DKoYnTMN?fe$9kz`%oG0s#B{ B5V!yU literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/Queue.c.05F0749C9DEA8BEB.idx b/.cache/clangd/index/Queue.c.05F0749C9DEA8BEB.idx new file mode 100644 index 0000000000000000000000000000000000000000..8f457965e33b67618450d0d0374d89966f87aa82 GIT binary patch literal 2540 zcmYjS2~ZPP7=BT}glrPcA|a522P8`%ArVkSqZZIrgF}pHAYh77L7;>}I3(5+kFixz z6pvb4WyYh2VnIt4>urlCRYWb~h_|D~>R8XAY8RZBw>y)`e((R@e}3=nr13O;j|V`~ z%<&b@>{5pp0DxqEC8e&s4h{gvyaA}#vS+g0++py0X+D#rq^C5S+71nZyhPmE z5p-QiNBYq6hkGp--**?T?W3|>v))lP{2BlHhNuH((R$nb9oz1;?0wqDYuq0p>HO=G zqu)H~Bpb3~#?$)C#z33;?&&Kn;erL_V-ENayRh_93zaf5>GrxR&1QS@f_LK_H}gPz7^)qhDUdt z11(Ojy>{a(@k{?LJS))c`1a-VU1zy%dKzM6zm?eM&0(-)z}8lolZ!7J79Z+ zXx+`s<55Ion__ANm*3KGux$d@ReVl)+w|j}g??jWxF&)7zJAZ(4a?`2mb>R)?blqb zy{Mbjwdv3^VZr^~Rj%tz>Mp9~#`0C|?tKr!KWI;8e!t4Tpt57}#+=hNpSL3*T9 z8|W{tBY=t_6!{bd$Rm9s0|3vP11K5ef#*CGvU2N(BLoOx2u7hXOil@@uwFuM2s&C+ zdt=d{Hv|Y{2)RDFQh9_=gcR_&ULQRGS9VUxWgh@yN1XEg%bnrpML?NVHr10nloiR! zF-qg62|ankbZ)u_Ar8m4w^pVBy^m|vbxC$zzQLD(VPu#Du?VOowJfC5=yceo8?GCL zQ5=j@VPuw=gK!3E+B5@3S!9+3qhdpGtfz%=HaS~@&=|R3`TDTY#y$k3wA3){T(8x8 zkZQoV!zr~TDI5Y?43<&IZvefeWshb<7N3ABQWb>vQZ$uLr{5_GYdx7mE4@xmw*b9g4NfNqLDg} zX5a+T1RZiWhrdd8th=yE#B_wDq_~c7Nw^#%J*j8e3=#v&7E8slLM04IFyc@&NlP)Z zNGx&`m}#!rG6kd5pj3#FEz-uS*ygfTV4Iz?d(tPMGte3AQ9CTtl<847&<;kJJ!cFF z)2~W7v%>dQ4Kv<^zyvkQ4((#tJqHf48>{mKD__U&^Cn=ND2~J(v43J8jUo_m8aa(6 zK!?P^lInEHbPtlxYbm<7`NDny0p$bbQWS-Nq2f?~jKX0!bMikv1T;Vc3yqMDkYgJy zqk}O@mL{`o$q~s>*p{kF)nJq-&0{h1Mfp8nsosZx#nNJy%_VYqZ0jHWto%3f${|Kz z@%(rN?#5XDSOw}N0kiqp3e+34%JjA8ojN=+r#%M$$pee+pM{x<58=R}d$|#Z+snLvQd^UB8 zIp1-Wx$`unCI-73L=Ix1BvFzcJD*HWjzP|4Q+4Y#x9>jS5fF+XOBHE}X*41c(6)kO zTg|~ZLz3Z90;Aj*XB^J2EU}D6`4O;!tnge~1awQ>LD)7&GRK1^tlsu~i!$vQlSqgt zBp6p>S;(Y;=@#+lc%mOh3{rd;_^7{`E5dw0cSSs}6N&W|sQAgwe literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/Queue.h.0FDB3A51CACEA373.idx b/.cache/clangd/index/Queue.h.0FDB3A51CACEA373.idx new file mode 100644 index 0000000000000000000000000000000000000000..de8de225110250cc943b15d4e3e29f6cc027d419 GIT binary patch literal 1510 zcmYjR4Nz2782$DS_UG+eShy?;OZ(&c)?L~}5T_7Ca@fKFQA8+15rP5*rG*I43KSb0 zSanB5-IfGRF-tTRW}1p9MQunLh*4oGAi>P|QAWrjvb&GHjBjSY-97hy-#Pc5GcPI5 zV)<17up%q2BtN?-gAV{c_)}P9%{{~cc#MG(=Z&?Wueu!KHQAVTZ~3Q7QYv=G#|rh9 z#rn_HB`)%MNkMnT+`M8)%Yd-OkRG-{FUN`g6*bkk|wvHh>Mr0k`pSP%9^rWDT6a*$iA{r|HAl~wZH-mV$?k*$m34J= zME0?fv&~m8M43BkVru`6^z6tAef5`(=ca~3kA@FkKjPcGzppuO$Tl3H9ds&A@t?DC z6E~ICSj0og!lm`qU-py*RK4H%LI1epoAN*( z`J=FzKNA8Q?IqDO=^L9{Cccz?KM@p`mw85$*OV*E*pS;OnEJ4&ZM8Ui)Djflc1IXC zDV#_?&#layaYQuOrTzAIA*r}C5eiH5GaIlwRm04V+JpHj3X}i}6|FKLhGq;P^5lV- z<{*L9)~CpB+8jcIS_nujQOno@LToX9{4LJTv&PzV8oXW0-fAUV$a3KMkCSZm&Yctl z03frE*~AtQiTFTy;qhe>o2qSk>s}h9xPP9{JSAI5zgk(VO?fn8ryvN+TS>3fA|q|o zg2;nAD^Jeg1^&1{l8)3P18vZ={p|T?Qrm)iATgb8{RMzlw#iGX)1Y-Uij~pd3d6<;! z1+n_Un*By$6c=E_<>PmU_g|87C}gJ1a+V&K#Zgzpw@cUi3Mi!JtHs1F3TgNnG0{dL z9bYFVQYgfvFllqnBc^~UCjZDcM>LxQHw_uf70kbaj*T)a$d;{<$I{^L%1~{@@ literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/Stack.c.C4C7FD383A3A2CFD.idx b/.cache/clangd/index/Stack.c.C4C7FD383A3A2CFD.idx new file mode 100644 index 0000000000000000000000000000000000000000..1feac024e20a2ae8917124023c2da55344eae365 GIT binary patch literal 2140 zcmYjS2~bm46#Wr`1bz}AU1PMzLEL#ErfdnW)B#6Nz?As8FxK)eL+8JwA zu!9t4YORAEF@qI#tV64gwJrnISc6JkN|lNQYsJ=fq_saVFF$W4$vf|!ckg}Y-uF_N zotatW3qfj2c3XpWeT6p!K{V`RTi;SML4crhL%oSGfri>H{(IkqPWRb<_;-)xh4tmW$EW>PKAUfS zcBVvV4jd%T`j6MYDc|!;Z+7ga15-CH$1=3`CCE<4^Yx+&C$Eo}h0bo7e8d)QaV*a` zQ8(ShuF20&%#fU7scuLc22@Vxo4+Go^6o@!J+k$;xgBG9`_%XT>`62COt$Ii9fj$? zueR2jE_4SVC6yKCzL%F)HqXTO-K#s8P8ztn?aFtXFE`nP-~IWHQFnwhJXKsIA063s zeP(j*RsGjnj2T7Y>4{Gck7!1SRqY|EIW<)y^IyicM@@+vle)QKd)w-7?~nDjPnEFN z65bX&<5YLA4k6cdliiLdr5cfa6~9Z7IM`!NaY*{VqC~eQb$)cx*U_O`J65c+FqAdo zlpRHnYaC}nX6~ADX3rmPA9^S;W{q}m#;IG#rweC^UnqLh@@p?gZ8IM`u6cCm+NVda zB`bDYK5SH)fBmU*gGpBP&L=nT$5(7n*dkghSB>@_nm+-vKTBwRO=|qOT>SmrEB(_6 z3diH!)8*!Z_Bm($>!BYVIrirTuMUvUZQ6cd6!Nok?=^MKdmTSUBSN-~4eJhLwO-C) zjP-T}H^UGQf>5K6k-?1giDW<|UvEf=5SYY}#DR5bJ%QaYB)|w-iWX&xC?XUh`7D9L z!ZAWl;lnPio^cU|_!zFp@wbP=RF_l}e;;#1G6G(H*qu2r#OP(WQV>-Za*0?6&(RFBoM} zS<(33Bx+K$`ygmGH9Hz?v7agrcz2gmiexiwox_*5`NAlV#tX;e2r>ma97$*r51TYo>S4>3<|g17 z z0s0`sThNb893^8dK@%|WP(r$pi6bdZ>S2@7Wga%UQ0|d%azgS7aAFu$)6@(c>F7Ep zo}x~#GvFvcJRil8L1=Kd5saF`OdOBHL{`f{`pm6k&5wFVhq3gTAxs9S0E}{jxXW-P zM1|NDTpTbeLuDRF#ZWPEn;KDbaFoT!@~~xzv!u8!pPwIzqcTRB2XhT|jqC4XVZf+` zVezn8saCgb|MU=hF6!1<>{2E8C$Mn6HU1hFu3L$J2@7b0ly)C~+IIH5tGT?B0|3eK z?E{AHpY#jZa!ODN4=e+nunu*-KOiSy#+F^L4p^q%-}o+RU$_&yu!snW$J0^rm9bzC zjB2@B8Au04jT~b%UK}&SEC4~xb!7&9ZH3btMnyD{9CsH(i}66I)KnSnynt392hJVw zR~+q?t6yR7mE2eEad{2i26wLuOB;DX9j9Jn8X^!v#-k`9B^mdtg|uYg7jUrSyWUiA z{1$6{g==nWG24<{6PD|1aj?Mzg50%)2=u#pXa9oMdjW)CXa3SwN_t Re?TA=CeuQK7?fZV{eOTM$pZiY literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/Stack.h.FBE39392F0B9E960.idx b/.cache/clangd/index/Stack.h.FBE39392F0B9E960.idx new file mode 100644 index 0000000000000000000000000000000000000000..74bbed4e9626ed7fd2eee0ef52da622dc1f0b499 GIT binary patch literal 1382 zcmWIYbaRViWngel@vO*AElFfyU|ByPx35g)+%1}~_Fu1TXy|YY)!!R&Yi4A%+wQc-7YhaVC>?3a z*}Bn5ZqG`cp2jn6A=Bf9&DPAUT>RKbV{6ymOwA1q*0GX%?!R8ZR>iU8+=;3sc8Xi# zPPdd^z0iN%L}AI+&J~+3bnQxyz8bJ*{tw2gXR#6Qv(HMY1xD_A(k8)nUX_(Z*EEC-k3VgHA=a=ONH@pib2%c`Qg`#Bz?TgU3|J?JW{o< zeLg1CDo}9lyA`WmDGzJoL%S@^376w$h|RU$QgUQlTKNj)M(NePHyGV@E?0Vfc4Lzl zGYZn186VW_A#zji*{M{~j+&28^#7>lU)-=dz*YBA#_}lUZaJR}|IY(@0#ZwS8MrPJ_b3Eer|bwFaguwF3O@dSLXI=J_cT(w34urB$$9ndj~z3?Cvjlgoi-} zXnZnTvV^D>o0bFvCo3bwdD-(tzx-IObcTmPih)5?M_5M-On}|bBLKADLfS6za~ktC z9tH`Z36^}8Dxzw9YARq8zz*cUS6Rn7N%|T$12@nFWhP~QFu}kH4j-Tii_R)te^veG z9}j~h&;%Ji8Ff)rK2>!FPIhL97a59D(~23H7#Ly?FM9TL!WLde9#I`W9U-s*K*GfK z2-l6uC=nJOQF#`5E?9{0h$^xua>3$~8I1Q{Cnw)PR$7vgOH`ag zTnuI|Oe;_r6t6I0Sd=nyLZT8X4vR>jYEUe~RKp?=s2Ut`P;re&Do;hIW!rCN zpy3Rvyhw&KsPQ5h&Y-~yGaRM{=xA_SfO)1UH760oE-p$g)(0^_MI;o6ip^14^?9O85l%hDi|05w*imc literal 0 HcmV?d00001 diff --git a/.gitignore b/.gitignore index 2d82e85..41cb4a6 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -Build \ No newline at end of file +Build +compile_commands.json \ No newline at end of file diff --git a/Include/Fledasty/Core/DynamicArray.h b/Include/Fledasty/Core/DynamicArray.h index b6f087e..ab03b99 100644 --- a/Include/Fledasty/Core/DynamicArray.h +++ b/Include/Fledasty/Core/DynamicArray.h @@ -21,13 +21,13 @@ * Author: Mineplay * ----------------------------------------------------------------------------- */ - #ifndef FLEDASTY_DYNAMIC_ARRAY - #define FLEDASTY_DYNAMIC_ARRAY +#ifndef FLEDASTY_DYNAMIC_ARRAY +#define FLEDASTY_DYNAMIC_ARRAY - #include +#include #include - #include "../Utils/Error.h" +#include "../Utils/Error.h" typedef struct { size_t size, capacity; @@ -53,4 +53,4 @@ FledastyError fledasty_dynamic_array_remove_value(FledastyDynamicArray *current_ bool fledasty_dynamic_array_has_value(const FledastyDynamicArray *current_dynamic_array, void *value); inline static bool fledasty_dynamic_array_is_empty(const FledastyDynamicArray *current_dynamic_array) { return current_dynamic_array->size == 0; } -#endif \ No newline at end of file +#endif diff --git a/Include/Fledasty/Core/LinkedList.h b/Include/Fledasty/Core/LinkedList.h new file mode 100644 index 0000000..87bf47a --- /dev/null +++ b/Include/Fledasty/Core/LinkedList.h @@ -0,0 +1,44 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ----------------------------------------------------------------------------- + * File: LinkedList.c + * Description: + * This file contains the functions for modifying the Linked List. It includes + * functions to append, Insert before, Insert after, Insert at index, + * Get, Remove element, Remove at index, Check if has element and Check if is empty. + * + * Author: Mineplay + * ----------------------------------------------------------------------------- + */ +#ifndef FLEDASTY_LINKED_LIST +#define FLEDASTY_LINKED_LIST + +#include + +#include "../Utils/Error.h" + +typedef struct FledastyLinkedListNode{ + void *value; + struct FledastyLinkedListNode *next; +} FledastyLinkedListNode; + +typedef struct { + size_t size, element_byte_size; + FledastyLinkedListNode *start, *end; +} FledastyLinkedList; + +FledastyError fledasty_linked_list_initialize(FledastyLinkedList *new_linked_list, void *values, const size_t values_size, const size_t element_byte_size); +FledastyError fledasty_linked_list_destroy(FledastyLinkedList *current_linked_list); + +#endif diff --git a/Include/Fledasty/Core/Queue.h b/Include/Fledasty/Core/Queue.h index d4919a6..2b88630 100644 --- a/Include/Fledasty/Core/Queue.h +++ b/Include/Fledasty/Core/Queue.h @@ -45,4 +45,4 @@ void *fledasty_queue_pop(FledastyQueue *current_queue); static inline bool fledasty_queue_is_empty(const FledastyQueue *current_queue) { return current_queue->size == 0; } -#endif \ No newline at end of file +#endif diff --git a/Include/Fledasty/Core/Stack.h b/Include/Fledasty/Core/Stack.h index da54a65..ca5349d 100644 --- a/Include/Fledasty/Core/Stack.h +++ b/Include/Fledasty/Core/Stack.h @@ -44,4 +44,4 @@ void *fledasty_stack_pop(FledastyStack *current_stack); static inline bool fledasty_stack_is_empty(const FledastyStack *current_stack) { return current_stack->size == 0; } -#endif \ No newline at end of file +#endif diff --git a/Src/Core/DynamicArray.c b/Src/Core/DynamicArray.c index 79dc033..16c6197 100644 --- a/Src/Core/DynamicArray.c +++ b/Src/Core/DynamicArray.c @@ -192,7 +192,7 @@ FledastyError fledasty_dynamic_array_remove_at_index(FledastyDynamicArray *curre return FLEDASTY_ERROR_INDEX_OUT_OF_RANGE; } - void *index_pointer = current_dynamic_array->buffer + (index * current_dynamic_array->element_byte_size); + unsigned char *index_pointer = current_dynamic_array->buffer + (index * current_dynamic_array->element_byte_size); hallocy_copy_memory(index_pointer, index_pointer + current_dynamic_array->element_byte_size, (current_dynamic_array->size + index) * current_dynamic_array->element_byte_size); current_dynamic_array->size -= 1; @@ -232,4 +232,4 @@ bool fledasty_dynamic_array_has_value(const FledastyDynamicArray *current_dynami } return false; -} \ No newline at end of file +} diff --git a/Src/Core/LinkedList.c b/Src/Core/LinkedList.c new file mode 100644 index 0000000..a6e9c99 --- /dev/null +++ b/Src/Core/LinkedList.c @@ -0,0 +1,88 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ----------------------------------------------------------------------------- + * File: LinkedList.c + * Description: + * This file contains the functions for modifying the Linked List. It includes + * functions to append, Insert before, Insert after, Insert at index, + * Get, Remove element, Remove at index, Check if has element and Check if is empty. + * + * Author: Mineplay + * ----------------------------------------------------------------------------- + */ +#include "../../Include/Fledasty/Core/LinkedList.h" + +#include +#include +#include + +FledastyError fledasty_linked_list_initialize(FledastyLinkedList *new_linked_list, void *values, const size_t values_size, const size_t element_byte_size) { + if (new_linked_list == NULL) { + return FLEDASTY_ERROR_FAILED_ALLOCATION; + } + + new_linked_list->element_byte_size = element_byte_size; + if (values == NULL || values_size == 0) { + new_linked_list->size = 0; + new_linked_list->start = NULL; + new_linked_list->end = NULL; + } else { + new_linked_list->size = values_size; + + new_linked_list->start = (FledastyLinkedListNode*)hallocy_malloc(sizeof(FledastyLinkedListNode)); + new_linked_list->start->value = hallocy_malloc(new_linked_list->element_byte_size); + hallocy_copy_memory(new_linked_list->start->value, values, new_linked_list->element_byte_size); + new_linked_list->start->next = NULL; + + FledastyLinkedListNode *last_node = new_linked_list->start; + for (size_t index = new_linked_list->element_byte_size; index < new_linked_list->size * new_linked_list->element_byte_size; index += new_linked_list->element_byte_size) { + FledastyLinkedListNode *new_node = (FledastyLinkedListNode*)hallocy_malloc(sizeof(FledastyLinkedListNode)); + new_node->value = hallocy_malloc(new_linked_list->element_byte_size); + hallocy_copy_memory(new_node->value, (unsigned char*)values + index, new_linked_list->element_byte_size); + + new_node->next = NULL; + last_node->next = new_node; + last_node = new_node; + } + + new_linked_list->end = last_node; + } + + return FLEDASTY_ERROR_NONE; +} + +FledastyError fledasty_linked_list_destroy(FledastyLinkedList *current_linked_list) { + if (current_linked_list == NULL) { + return FLEDASTY_ERROR_INVALID_POINTER; + } + + FledastyLinkedListNode *previous_node = NULL; + FledastyLinkedListNode *current_node = current_linked_list->start; + while (current_node != NULL) { + previous_node = current_node; + current_node = current_node->next; + + HallocyError result = hallocy_free(previous_node->value); + if (result == HALLOCY_ERROR_NONE) { + return FLEDASTY_ERROR_FAILED_ALLOCATION; + } + + result = hallocy_free(previous_node); + if (result == HALLOCY_ERROR_NONE) { + return FLEDASTY_ERROR_FAILED_ALLOCATION; + } + } + + return FLEDASTY_ERROR_NONE; +} \ No newline at end of file diff --git a/Src/Core/Queue.c b/Src/Core/Queue.c index 9b1be7c..4206615 100644 --- a/Src/Core/Queue.c +++ b/Src/Core/Queue.c @@ -124,4 +124,4 @@ void *fledasty_queue_pop(FledastyQueue *current_queue) { } return value_address; -} \ No newline at end of file +} diff --git a/Src/Core/Stack.c b/Src/Core/Stack.c index 8988e58..fd13ec9 100644 --- a/Src/Core/Stack.c +++ b/Src/Core/Stack.c @@ -106,4 +106,4 @@ void *fledasty_stack_pop(FledastyStack *current_stack) { current_stack->size -= 1; return value_address; -} \ No newline at end of file +} diff --git a/Tests/Main.c b/Tests/Main.c index c9bb3fe..a07db2c 100644 --- a/Tests/Main.c +++ b/Tests/Main.c @@ -23,6 +23,7 @@ #include #include #include +#include int main() { FledastyQueue test_queue; @@ -101,6 +102,11 @@ int main() { } fledasty_dynamic_array_destroy(&test_dynamic_array); + + FledastyLinkedList test_linked_list; + fledasty_linked_list_initialize(&test_linked_list, (int[]){11, 12, 13, 14, 15}, 5, sizeof(int)); + + fledasty_linked_list_destroy(&test_linked_list); printf("Done\n"); return 0; } \ No newline at end of file From 9d571c694eb129816b6de6509853c2bf30f95ba1 Mon Sep 17 00:00:00 2001 From: Mineplay Date: Fri, 25 Apr 2025 15:18:44 -0500 Subject: [PATCH 02/13] feat(linked list): added append function --- Include/Fledasty/Core/LinkedList.h | 2 ++ Src/Core/LinkedList.c | 18 +++++++++++++++++- Tests/Main.c | 4 ++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/Include/Fledasty/Core/LinkedList.h b/Include/Fledasty/Core/LinkedList.h index 87bf47a..e482ed2 100644 --- a/Include/Fledasty/Core/LinkedList.h +++ b/Include/Fledasty/Core/LinkedList.h @@ -41,4 +41,6 @@ typedef struct { FledastyError fledasty_linked_list_initialize(FledastyLinkedList *new_linked_list, void *values, const size_t values_size, const size_t element_byte_size); FledastyError fledasty_linked_list_destroy(FledastyLinkedList *current_linked_list); +FledastyError fledasty_linked_list_append(FledastyLinkedList *current_linked_list, void *value); + #endif diff --git a/Src/Core/LinkedList.c b/Src/Core/LinkedList.c index a6e9c99..1b23852 100644 --- a/Src/Core/LinkedList.c +++ b/Src/Core/LinkedList.c @@ -85,4 +85,20 @@ FledastyError fledasty_linked_list_destroy(FledastyLinkedList *current_linked_li } return FLEDASTY_ERROR_NONE; -} \ No newline at end of file +} + +FledastyError fledasty_linked_list_append(FledastyLinkedList *current_linked_list, void *value) { + if (current_linked_list == NULL || value == NULL) { + return FLEDASTY_ERROR_INVALID_POINTER; + } + + FledastyLinkedListNode *new_node = (FledastyLinkedListNode*)hallocy_malloc(sizeof(FledastyLinkedListNode)); + + new_node->value = hallocy_malloc(current_linked_list->element_byte_size); + hallocy_copy_memory(new_node->value, value, current_linked_list->element_byte_size); + new_node->next = NULL; + + current_linked_list->end->next = new_node; + + return FLEDASTY_ERROR_NONE; +} diff --git a/Tests/Main.c b/Tests/Main.c index a07db2c..bc8a4d2 100644 --- a/Tests/Main.c +++ b/Tests/Main.c @@ -106,6 +106,10 @@ int main() { FledastyLinkedList test_linked_list; fledasty_linked_list_initialize(&test_linked_list, (int[]){11, 12, 13, 14, 15}, 5, sizeof(int)); + for (int i = 0; i < 10; i += 1) { + fledasty_linked_list_append(&test_linked_list, &i); + } + fledasty_linked_list_destroy(&test_linked_list); printf("Done\n"); return 0; From d89747a2ed8c2aeaf632b7f9a72b27b3f2605661 Mon Sep 17 00:00:00 2001 From: Mineplay Date: Fri, 25 Apr 2025 15:48:09 -0500 Subject: [PATCH 03/13] fix(linked list): fixed size not updating on append --- Src/Core/LinkedList.c | 1 + Tests/Main.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/Src/Core/LinkedList.c b/Src/Core/LinkedList.c index 1b23852..8cd0408 100644 --- a/Src/Core/LinkedList.c +++ b/Src/Core/LinkedList.c @@ -99,6 +99,7 @@ FledastyError fledasty_linked_list_append(FledastyLinkedList *current_linked_lis new_node->next = NULL; current_linked_list->end->next = new_node; + current_linked_list->size += 1; return FLEDASTY_ERROR_NONE; } diff --git a/Tests/Main.c b/Tests/Main.c index bc8a4d2..684bf12 100644 --- a/Tests/Main.c +++ b/Tests/Main.c @@ -110,6 +110,12 @@ int main() { fledasty_linked_list_append(&test_linked_list, &i); } + FledastyLinkedListNode *test_linked_list_node = test_linked_list.start; + for (int i = 0; i < test_linked_list.size; i++) { + printf("Linked list get: %d\n", *(int*)test_linked_list_node->value); + test_linked_list_node = test_linked_list_node->next; + } + fledasty_linked_list_destroy(&test_linked_list); printf("Done\n"); return 0; From 34246c10d7ab13970ea859cfb932bd3c0f70af31 Mon Sep 17 00:00:00 2001 From: Mineplay Date: Fri, 25 Apr 2025 16:11:13 -0500 Subject: [PATCH 04/13] feat(linked list): implemented is empty function --- Include/Fledasty/Core/LinkedList.h | 3 +++ Tests/Main.c | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Include/Fledasty/Core/LinkedList.h b/Include/Fledasty/Core/LinkedList.h index e482ed2..648dcae 100644 --- a/Include/Fledasty/Core/LinkedList.h +++ b/Include/Fledasty/Core/LinkedList.h @@ -25,6 +25,7 @@ #define FLEDASTY_LINKED_LIST #include +#include #include "../Utils/Error.h" @@ -43,4 +44,6 @@ FledastyError fledasty_linked_list_destroy(FledastyLinkedList *current_linked_li FledastyError fledasty_linked_list_append(FledastyLinkedList *current_linked_list, void *value); +static inline bool fledasty_linked_list_is_empty(FledastyLinkedList *current_linked_list) { return current_linked_list->size == 0; } + #endif diff --git a/Tests/Main.c b/Tests/Main.c index 684bf12..f33d661 100644 --- a/Tests/Main.c +++ b/Tests/Main.c @@ -111,11 +111,15 @@ int main() { } FledastyLinkedListNode *test_linked_list_node = test_linked_list.start; - for (int i = 0; i < test_linked_list.size; i++) { + for (int i = 0; i < test_linked_list.size; i += 1) { printf("Linked list get: %d\n", *(int*)test_linked_list_node->value); test_linked_list_node = test_linked_list_node->next; } + if (fledasty_linked_list_is_empty(&test_linked_list)) { + printf("Linked list is empty\n"); + } + fledasty_linked_list_destroy(&test_linked_list); printf("Done\n"); return 0; From fee99c8cdd3ae69f1c08941e0b5a86b7cd818fe9 Mon Sep 17 00:00:00 2001 From: Mineplay Date: Fri, 25 Apr 2025 16:14:46 -0500 Subject: [PATCH 05/13] fix(linked list): fixed appending to linked list --- Src/Core/LinkedList.c | 1 + 1 file changed, 1 insertion(+) diff --git a/Src/Core/LinkedList.c b/Src/Core/LinkedList.c index 8cd0408..da1327f 100644 --- a/Src/Core/LinkedList.c +++ b/Src/Core/LinkedList.c @@ -99,6 +99,7 @@ FledastyError fledasty_linked_list_append(FledastyLinkedList *current_linked_lis new_node->next = NULL; current_linked_list->end->next = new_node; + current_linked_list->end = new_node; current_linked_list->size += 1; return FLEDASTY_ERROR_NONE; From 8370ada3c4ccf5489f62b07c67271beb4b65d466 Mon Sep 17 00:00:00 2001 From: Mineplay Date: Fri, 25 Apr 2025 17:04:33 -0500 Subject: [PATCH 06/13] feat(linked list): implemented insert at index --- Include/Fledasty/Core/LinkedList.h | 2 ++ Src/Core/LinkedList.c | 35 ++++++++++++++++++++++++++++++ Tests/Main.c | 3 +++ 3 files changed, 40 insertions(+) diff --git a/Include/Fledasty/Core/LinkedList.h b/Include/Fledasty/Core/LinkedList.h index 648dcae..2dc742c 100644 --- a/Include/Fledasty/Core/LinkedList.h +++ b/Include/Fledasty/Core/LinkedList.h @@ -44,6 +44,8 @@ FledastyError fledasty_linked_list_destroy(FledastyLinkedList *current_linked_li FledastyError fledasty_linked_list_append(FledastyLinkedList *current_linked_list, void *value); +FledastyError fledasty_linked_list_insert_at_index(FledastyLinkedList *current_linked_list, const size_t index, void *value); + static inline bool fledasty_linked_list_is_empty(FledastyLinkedList *current_linked_list) { return current_linked_list->size == 0; } #endif diff --git a/Src/Core/LinkedList.c b/Src/Core/LinkedList.c index da1327f..97fa7ee 100644 --- a/Src/Core/LinkedList.c +++ b/Src/Core/LinkedList.c @@ -22,6 +22,7 @@ * ----------------------------------------------------------------------------- */ #include "../../Include/Fledasty/Core/LinkedList.h" +#include "Fledasty/Utils/Error.h" #include #include @@ -104,3 +105,37 @@ FledastyError fledasty_linked_list_append(FledastyLinkedList *current_linked_lis return FLEDASTY_ERROR_NONE; } + +FledastyError fledasty_linked_list_insert_at_index(FledastyLinkedList *current_linked_list, const size_t index, void *value) { + if (current_linked_list == NULL || value == NULL) { + return FLEDASTY_ERROR_INVALID_POINTER; + } + + if (index > current_linked_list->size) { + return FLEDASTY_ERROR_INDEX_OUT_OF_RANGE; + } + + FledastyLinkedListNode *new_node = (FledastyLinkedListNode*)hallocy_malloc(sizeof(FledastyLinkedListNode)); + + new_node->value = hallocy_malloc(current_linked_list->element_byte_size); + hallocy_copy_memory(new_node->value, value, current_linked_list->element_byte_size); + + if (index == 0) { + new_node->next = current_linked_list->start; + current_linked_list->start = new_node; + } else if (index == current_linked_list->size) { + current_linked_list->end->next = new_node; + current_linked_list->end = new_node; + } else { + FledastyLinkedListNode *current_node = current_linked_list->start; + for (size_t node = 0; node < index - 1; node += 1) { + current_node = current_node->next; + } + + new_node->next = current_node->next; + current_node->next = new_node; + } + + current_linked_list->size += 1; + return FLEDASTY_ERROR_NONE; +} diff --git a/Tests/Main.c b/Tests/Main.c index f33d661..e918c78 100644 --- a/Tests/Main.c +++ b/Tests/Main.c @@ -110,6 +110,9 @@ int main() { fledasty_linked_list_append(&test_linked_list, &i); } + insert_value = 35; + fledasty_linked_list_insert_at_index(&test_linked_list, 1, &insert_value); + FledastyLinkedListNode *test_linked_list_node = test_linked_list.start; for (int i = 0; i < test_linked_list.size; i += 1) { printf("Linked list get: %d\n", *(int*)test_linked_list_node->value); From 2f5f629def1bbfe1b08e2a657b8e895a8909cd95 Mon Sep 17 00:00:00 2001 From: Mineplay Date: Fri, 25 Apr 2025 17:11:35 -0500 Subject: [PATCH 07/13] feat(linked list): implemented before value function --- Include/Fledasty/Core/LinkedList.h | 1 + Src/Core/LinkedList.c | 33 ++++++++++++++++++++++++++++++ Tests/Main.c | 3 +++ 3 files changed, 37 insertions(+) diff --git a/Include/Fledasty/Core/LinkedList.h b/Include/Fledasty/Core/LinkedList.h index 2dc742c..88a7c22 100644 --- a/Include/Fledasty/Core/LinkedList.h +++ b/Include/Fledasty/Core/LinkedList.h @@ -45,6 +45,7 @@ FledastyError fledasty_linked_list_destroy(FledastyLinkedList *current_linked_li FledastyError fledasty_linked_list_append(FledastyLinkedList *current_linked_list, void *value); FledastyError fledasty_linked_list_insert_at_index(FledastyLinkedList *current_linked_list, const size_t index, void *value); +FledastyError fledasty_linked_list_insert_before_value(FledastyLinkedList *current_linked_list, void *before_value, void *value); static inline bool fledasty_linked_list_is_empty(FledastyLinkedList *current_linked_list) { return current_linked_list->size == 0; } diff --git a/Src/Core/LinkedList.c b/Src/Core/LinkedList.c index 97fa7ee..740acf8 100644 --- a/Src/Core/LinkedList.c +++ b/Src/Core/LinkedList.c @@ -139,3 +139,36 @@ FledastyError fledasty_linked_list_insert_at_index(FledastyLinkedList *current_l current_linked_list->size += 1; return FLEDASTY_ERROR_NONE; } + +FledastyError fledasty_linked_list_insert_before_value(FledastyLinkedList *current_linked_list, void *before_value, void *value) { + if (current_linked_list == NULL || before_value == NULL || value == NULL) { + return FLEDASTY_ERROR_INVALID_POINTER; + } + + FledastyLinkedListNode *previous_node = NULL; + FledastyLinkedListNode *current_node = current_linked_list->start; + while (current_node != NULL && !hallocy_compare_memory(current_node->value, before_value, current_linked_list->element_byte_size)) { + previous_node = current_node; + current_node = current_node->next; + } + + if (current_node == NULL) { + return FLEDASTY_ERROR_VALUE_NOT_FOUND; + } + + FledastyLinkedListNode *new_node = (FledastyLinkedListNode*)hallocy_malloc(sizeof(FledastyLinkedListNode)); + + new_node->value = hallocy_malloc(current_linked_list->element_byte_size); + hallocy_copy_memory(new_node->value, value, current_linked_list->element_byte_size); + + if (previous_node == NULL) { + new_node->next = current_linked_list->start; + current_linked_list->start = new_node; + } else { + new_node->next = previous_node->next; + previous_node->next = new_node; + } + + current_linked_list->size += 1; + return FLEDASTY_ERROR_NONE; +} diff --git a/Tests/Main.c b/Tests/Main.c index e918c78..83c847f 100644 --- a/Tests/Main.c +++ b/Tests/Main.c @@ -112,6 +112,9 @@ int main() { insert_value = 35; fledasty_linked_list_insert_at_index(&test_linked_list, 1, &insert_value); + insert_value = 28; + insert_at_value = 35; + fledasty_linked_list_insert_before_value(&test_linked_list, &insert_at_value, &insert_value); FledastyLinkedListNode *test_linked_list_node = test_linked_list.start; for (int i = 0; i < test_linked_list.size; i += 1) { From 0f3334b232f6ca4474de4ed3bb9752375ac2dd01 Mon Sep 17 00:00:00 2001 From: Mineplay Date: Fri, 25 Apr 2025 17:15:58 -0500 Subject: [PATCH 08/13] feat(linked list): added insert after value function --- Include/Fledasty/Core/LinkedList.h | 1 + Src/Core/LinkedList.c | 35 +++++++++++++++++++++++++++++- Tests/Main.c | 2 ++ 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/Include/Fledasty/Core/LinkedList.h b/Include/Fledasty/Core/LinkedList.h index 88a7c22..9b70f0e 100644 --- a/Include/Fledasty/Core/LinkedList.h +++ b/Include/Fledasty/Core/LinkedList.h @@ -46,6 +46,7 @@ FledastyError fledasty_linked_list_append(FledastyLinkedList *current_linked_lis FledastyError fledasty_linked_list_insert_at_index(FledastyLinkedList *current_linked_list, const size_t index, void *value); FledastyError fledasty_linked_list_insert_before_value(FledastyLinkedList *current_linked_list, void *before_value, void *value); +FledastyError fledasty_linked_list_insert_after_value(FledastyLinkedList *current_linked_list, void *after_value, void *value); static inline bool fledasty_linked_list_is_empty(FledastyLinkedList *current_linked_list) { return current_linked_list->size == 0; } diff --git a/Src/Core/LinkedList.c b/Src/Core/LinkedList.c index 740acf8..0d7fc11 100644 --- a/Src/Core/LinkedList.c +++ b/Src/Core/LinkedList.c @@ -165,10 +165,43 @@ FledastyError fledasty_linked_list_insert_before_value(FledastyLinkedList *curre new_node->next = current_linked_list->start; current_linked_list->start = new_node; } else { - new_node->next = previous_node->next; + new_node->next = current_node; previous_node->next = new_node; } current_linked_list->size += 1; return FLEDASTY_ERROR_NONE; } + +FledastyError fledasty_linked_list_insert_after_value(FledastyLinkedList *current_linked_list, void *after_value, void *value) { + if (current_linked_list == NULL || after_value == NULL || value == NULL) { + return FLEDASTY_ERROR_INVALID_POINTER; + } + + FledastyLinkedListNode *current_node = current_linked_list->start; + while (current_node != NULL && !hallocy_compare_memory(current_node->value, after_value, current_linked_list->element_byte_size)) { + current_node = current_node->next; + } + + if (current_node == NULL) { + return FLEDASTY_ERROR_VALUE_NOT_FOUND; + } + + FledastyLinkedListNode *new_node = (FledastyLinkedListNode*)hallocy_malloc(sizeof(FledastyLinkedListNode)); + + new_node->value = hallocy_malloc(current_linked_list->element_byte_size); + hallocy_copy_memory(new_node->value, value, current_linked_list->element_byte_size); + + if (current_node == current_linked_list->end) { + new_node->next = NULL; + + current_linked_list->end->next = new_node; + current_linked_list->end = new_node; + } else { + new_node->next = current_node->next; + current_node->next = new_node; + } + + current_linked_list->size += 1; + return FLEDASTY_ERROR_NONE; +} diff --git a/Tests/Main.c b/Tests/Main.c index 83c847f..3115622 100644 --- a/Tests/Main.c +++ b/Tests/Main.c @@ -115,6 +115,8 @@ int main() { insert_value = 28; insert_at_value = 35; fledasty_linked_list_insert_before_value(&test_linked_list, &insert_at_value, &insert_value); + insert_value = 90; + fledasty_linked_list_insert_after_value(&test_linked_list, &insert_at_value, &insert_value); FledastyLinkedListNode *test_linked_list_node = test_linked_list.start; for (int i = 0; i < test_linked_list.size; i += 1) { From ffa7bd27eb0d1118ca5c3f05757e7880f28cac9a Mon Sep 17 00:00:00 2001 From: Mineplay Date: Sat, 26 Apr 2025 04:50:00 -0500 Subject: [PATCH 09/13] feat(linked list): implemented has value function --- .../index/DynamicArray.c.4AD21698FC6EDB91.idx | Bin 4890 -> 4890 bytes .../index/DynamicArray.h.83D0CABD35D124C4.idx | Bin 1970 -> 1970 bytes .../index/LinkedList.c.D81166C9F6E527C3.idx | Bin 1642 -> 4486 bytes .../index/LinkedList.h.874993982F1D060C.idx | Bin 1240 -> 1908 bytes .../clangd/index/Main.c.3B29896BB83AC389.idx | Bin 1330 -> 1682 bytes .../clangd/index/Queue.c.05F0749C9DEA8BEB.idx | Bin 2540 -> 2540 bytes .../clangd/index/Queue.h.0FDB3A51CACEA373.idx | Bin 1510 -> 1502 bytes .../clangd/index/Stack.c.C4C7FD383A3A2CFD.idx | Bin 2140 -> 2140 bytes .../clangd/index/Stack.h.FBE39392F0B9E960.idx | Bin 1382 -> 1374 bytes Include/Fledasty/Core/LinkedList.h | 1 + Src/Core/LinkedList.c | 19 +++++++++++++++++- Tests/Main.c | 4 ++++ 12 files changed, 23 insertions(+), 1 deletion(-) diff --git a/.cache/clangd/index/DynamicArray.c.4AD21698FC6EDB91.idx b/.cache/clangd/index/DynamicArray.c.4AD21698FC6EDB91.idx index 3172951b7bf6423b6a613045a794bf633dc715cf..ab42c03faa7666369f4915fcfd6afcac7d933efd 100644 GIT binary patch delta 40 ycmV+@0N4MTCYmO&vIYb?!T~_Dwgv_Y1Y^PhbhE$^5dsJ*Z%nkn`K9EO*%Cn`j1PYR delta 40 ycmV+@0N4MTCYmO&vIYb(!T~q4wgv_Y1X{uYYqP)*5dsL!sg-S@UQ!y9*%Cn?QVwDO diff --git a/.cache/clangd/index/DynamicArray.h.83D0CABD35D124C4.idx b/.cache/clangd/index/DynamicArray.h.83D0CABD35D124C4.idx index 08f901aa99e7d4bc00e68dcab5c755623f28ac2c..c3dd364b0c9cdfc7203d31ff7e76f72ae56ff613 100644 GIT binary patch delta 20 ccmdnQzlncC3p>Y#nd-mvzMpzNxrbd10AAS%QUCw| delta 20 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 tNTUs=rY936^Azq z&oBMh_f@dodFm$7;L=e4`kPA|7rZm_na&xezW8Qaea8CtR^q8sLFrwySWRG9a{N`)6d+yE=%d(p=_=w59O4#&5=EG z{cbpgZ(SeXeeuoxHK|+0Keg_Sak|Fdv5%8&$x(xQx9!#QO;+x>kl5^*V(!{gJMG)UpT+Iz z&U60YIHRbbw7PaH_qiKuLtf3{-pKgvd(52F?WKuV_}}d_&p!S-Z(ZcSz&8GX-y8lg zY+v3Y5_*59@m;?EcW%zQSNCda>x`y&Ikk(4PQHJp9F6y%f5V-jxH31%2^gb7q1?O0 zJZeLE7-Sh3WUTqDwInq8G_@EwnHd?x#2F=6pK)pin?KxF$HO28R3OVIt1F?wr=iQh z$-)FtP?VZhe1VyP!9+%ynYa2F2NREste&g`T%U}!wzVzH8WYlYlZvE@EKHb3Mnh5qiKlI$Z3C0L$hNxSqlu;t z&@pO~YBDfk9vM?fQ#j96mbYW7ii-_Uk&cH>7($V*oURUxH@QNJQ|;sGJ(hks0MB>$I_aXUM*G|_TA*mOn zmki^<%w^;PM-VX9z~FLpj?22@dkKs@GPeA-x-eBRT|m{K*n+7(w9HNJv)TLxpl4Mj zRpnr+cw`(M99?00Mf&7ZD!3j@0V;BnbJKze^T>D$ddtFivbE<5p3FMCg_B1{PFhYL zW&w|kvXHVEf~Tses*2#L$*UlINU^FiZ1QHFX{Kw=@8Ii?qcp5Fkv1UA2A;| zZ_13@&m}(E9|k5X12F?Bgms4EhDeFbMb$+UWBV)~A%?mTBC^aV$ z6f4C=$;H+nh6IR!07)2wfl=n{5@n;W*(cIiBqXJz8KmGc4AKZ@a&AhF5RfY*Ai~DZ R!^_RV$uGz!$|b-m3;=i?62<@k diff --git a/.cache/clangd/index/LinkedList.h.874993982F1D060C.idx b/.cache/clangd/index/LinkedList.h.874993982F1D060C.idx index 069dd2ab0c12aeeb99b20d472c3e15ea19754b8e..c28d3cb8536e09206cdc4acf3c1dfd4e02a8f5f3 100644 GIT binary patch literal 1908 zcmYjR3s4hR6ulchvdLx>0u4OWgaimCh9o8$Z3hvsL{PL6#9y?EqNoLN2xCE{qs3~q zBF=zQD}JCV3>85o*3q^~tKtW(;8g2Cb*ci|)(;=8zhe8c$qU_?-0Yrr-@E6Ydv>i! z7E9I;fQcDN`PobI(!Bv70RQZHxy#!rfNgj!fA`fHaVt9v;?C5(o+>)ae_CPfGBY2wfFe|sH(EdYIePjIAEP9otT&gIu>WX}cG1a+dcdM)N>5S`33{Km>pyd69u!02;dhfI>c!$u%{V(m#hYFbrU*jkT$fmes0(7We=gfD=C5 z%wAu-Bt^zTgb+}KAVS0i@Z(N^Hs3?*dPl3ZEJ*RPDqI!G1+x5JQR432*+F^+Wcc_t z%BPJALq;EC7*{|Nhzlge9j!im=vk~Uh%rUENFKq3L5gMhA++k!y#y8_{Q-sYLq%L5 zCHgCuSKXeMU}fPQCqe%RB^SuDBu((0G_fd+f#H}zJR7e;8djqLdI;reaGe#!d zKVd+QQ{=2X3aMFj6wr*XE8(YVi>%+gZygINr%=OG3N8?uvak)Jn8TS(0!{@bPZ^Ay zVNiwgogEK?dncS_Asnlq2vbCIf$X0>(03$xUFvNH6u5pin{7loR%Zm-kLRkt{ot8O zN6FGh41{5sO#vnY7dRcbIY91`rS^gUd4}e@yy6-(Fi5Ra$9noinvt6E9&wRYqmA}> z3F%C_1P>#mAFEIDNQew(L!w7>WDGZ&Jtje>QKpH6==`%^cXw@f2zd-Lg38W4DN=>Y%t83+6@!AFw9xm4HF|f zd&Vwyqd*Ldo8ye@#u=pYR)vr~q)EKj>0r_v83nGynby6RsEo6nekGM6=dKKwZ20z# zFP<`}g@h)9G@ucZ&KaZyt&q%?K|0V0Nf`#|K`$g-Gspl2A&~~Z1zG9NO7`5vc0K;* cq5GN)UUN#v5U=2%5C|eH073?Dg9mT_0}A9XVgLXD literal 1240 zcmWIYbaT7F!oc91;#rZKT9OE4G6(~4aY<2TE+YfOT4n}@iaARs1^OQ{5NZ7#{Ov%q zKm_xzNAnEWgoPh*KdjVz%PRFg>T=m-&p+?utO62sF8zAj7@4ahL?GSLN zy=vWA;}tu3A@GgX~G;bBUjX3ulyEoNK9T@N2fgwJWWm}9#SbLzF(=iV(_UL0-0)033lJE8F0_H7J$nbj{3eiT_N za^i2;4ma6}Q4=@b*)6?AyRkcA?hOX_HC=&E-3{6D8GEi@afMZyicLB<)pWjkV1j`ItbpMn+v+*ilLAOut(%O|VLr@^P8%fQLP1W|Bk znVZ~av-u5t45A?S%cv@X377?P$}RkMYts*KgWa#lq$t4$A`tGMGUN7hiI4V&`51(O z?pIJ&PzMt*{R~B^X~oNs!kL*1626eoW8mS_(9>{$yOK{+ThkWiDHGcxTsJDCM3{N_ zR9IBFU=ab-lCF`9(4x`EsL{>{QQ+rLM_{VGXcYoL4y}& xF%O?6gC;M`bw#N;i6BFZi;|0#K@7fg`XOxmdu#)kc=;LlK_U>q3u7=a001<`Uz7j< diff --git a/.cache/clangd/index/Main.c.3B29896BB83AC389.idx b/.cache/clangd/index/Main.c.3B29896BB83AC389.idx index 089ca5b39881d563caa0538afdf6caf5e5bb644d..427eb78e91e5d465de92d42fa5b74397088d9cb5 100644 GIT binary patch literal 1682 zcmY+_2~ZPP7y#f6JahwrKuA(U!Wm8pAc~w`2!sNn!)3Ty?jvASl87M@kfeYWsTL@s zh;me5(1O?kZAFj*)0R%LiqryDELy5%9JPooqM?1UeQWw=vU&ga{{1)m@0(3z2%mp+ z6@~?*hsZ=3(iDJUm?`{7q++2v3B#1S7$&Rlhz!rwaW@{b3@u~Gv%d<+b;9M2y$@*B zdFJ)uq4sf$cfI!=@8 zd=oZj5TA5RsN=xo5oUmxJgzeAjnDQSf5 z_TaE}4HaMGBnn*!giLhWWcthrI=6uiISXXjAYP<2D|&}tXgCB9u|s@h&i+tsjfex; z9GIIUriHe(H8SVTA&YPk7qRkvqw%zi2n)ysP6aNAdtAK5^0@#mHFci-dt}_#Ok@unCsIl4d;V=XT+^K3s+ZCRC35tAmt(cjqDWVH9JrQIS1qr zts83PTRih@I1E`9Bnw5^?5=Z>m5udE$j-R4C1Sfvmy8w*=Sv|c;Yp5&(Kku|e_KNB zu*B$pyj%gZ)9^G0lx4}Pwcfq>=tIa>xD^{Q!>cXT|D;I`Z$SmrLv_S-JVsBm3UbumA{%hvsWMbf)Lj!4(RHZVPPn(eI|v9dSpaHxUo#X+=K3 zM=NtPzFBL{ANSXa67fW>C>c-Iiqi3Ptw@f`wW4CYSSwPIfQm$1v3bnqr+LMz6?iA> z!Fu8yBF@;8qIqLU#A%XX&BR1=cs)pT@9%t~e(ecgqsO3`8k=CoXa&OF?2Q_Ww? be)C%uLI%uSqP#>p)m z^BZHiE-D^wx{&3^9#Q3d^U=~z;@fv_d&+CMae~_kNB7Iy4Vi1esEh&!&Vr5&a9(QcD$YwxnszYXsMI!-BYpZ09~-7+us!x}FC z4#l_D+~uj+U@Lvj=DKot8V*wENy*~a{Ju#WrE^w|4xy;d3s5(%Z5wmw3QW# zTY5hy^vqcQg-^WiUx)kJRTt-&u2k3-`jw&J?8W-V$`zG%@_XdwRQ3eQhtxA4zTP95 z|7eTftvBmRthm4KEuG^LBT>-xBT7vO+R;X=ZD6Y&+k_U#{-|$z}50~<{@i2%2 z15%1biUUjlWgws^HLW-l7^XK;?oAL;o-e}4Bb>&PrUcXWg=bOqw!=R`!X6wRsxaY> zr)o9RrsT>1g=JV|WMRTvbuEgjo;oW7g@ajwbz#Cqy|=_u*JT+1g;ix#6=1?DCt6Dx zp0XGNg#%au^kBlQ&f(wWT=e{a!r?68S}@_0kr__EGxOqr!fq^XaF?johu6F;&PZVb zstyhhhpFZfj?|9Shw%&*B+t#7EK&f}Yp!f=1{0Rvuq3E=!JHVWlCgq^5cj*u@$VZ=<^hGHG@_hfhU9&}BDv?t zizPr|R~A#^ub!Gyho9!z%kmplR# zwpO%;tInP;`sK%Jr87Wbdk%YenEVYZT>9_Np({XPX%=Zgm?0L@c8QV$pOuS| F7XT-435Wmy diff --git a/.cache/clangd/index/Queue.c.05F0749C9DEA8BEB.idx b/.cache/clangd/index/Queue.c.05F0749C9DEA8BEB.idx index 8f457965e33b67618450d0d0374d89966f87aa82..98ae1e7264f05573b63831c8f57dfb37b081943e 100644 GIT binary patch delta 20 ccmaDO{6=`g3{H-?hRRl<4WAZGUcl)C0AQsF5&!@I delta 20 ccmaDO{6=`g3{DQ~%;Rl*aTotjUcl)C0AI!l4FCWD diff --git a/.cache/clangd/index/Queue.h.0FDB3A51CACEA373.idx b/.cache/clangd/index/Queue.h.0FDB3A51CACEA373.idx index de8de225110250cc943b15d4e3e29f6cc027d419..ca5a60d18968d05c86b5966d760fae4f6474c417 100644 GIT binary patch delta 589 zcmaFHeUH07$kWa38Y=^XbBbq0ZfZ#)3j+g#Fc24)6lL}@GBE503RKKF8@$o)uz|qW z(|p^+VaZW~&!g6PKxo zPyE+##npE5wov!`GM5_ywy147=BR(m_V#MMqrZChJDgu6f35wN^EqYNvx|yf`pt0M z@S#P+_om3PV3%`MFV#E`9h=_lcVk{`WVVj=rA=ofQfA)IIbbxiXWHuBPdCP>UAB^u zoV-XVXm=a$o{hb39`zQ_cWO3xFFqg~A-8xUljYMx-(J`(C{?(oyW4d#XHD6$F5QA7 zyJlQBd7tv(-2xTaNk>gfJ6reTZRLFY zr@lI5gJt$br&JGieyNW4>4)XZ&$2(b*TQnw=YQ4ZTbU~NeE09oV*h^Hdx{pv>GWB_ z5z}vFHr_RwV=%=jaHpd?>j$F)KBf&ePj%QAMr_aY%Sid#pLBn&%MJyG;>z5lg}{jE zc&b)2ZAz{T4}%0SxZ5bseYcSb!$UwvyCg(FrDoH~*qS|cQ5)7QI zj0_6=jH0aDCT8;Xe7D@p#~?p>6_Xr?I84t4CM!nS$=uAg!cs7uT5MX944j-S3<{g0 VnKPI;bZ%u=pKY{zGWj&CGyvCR>O}wm delta 725 zcmcb|{fxUl$kWa39xDTbbBbq0ZfZ#)3j+g#Fc24)6lG3jWMKFK6sVYUHh81oVFQ7$ z%Tr!BtTqd4Z1r*FP;m<>?UVU^DI(_4gU!s0AKzPeI&KMEDZt&mwEF$rzw_RmIj5F? z`U#&SXVKeccK(Y#RoM%RUIvHn^S_yS)@Ih8x$3q+VNZK=TuwGazB1a)?jhM zL(agNt8{ypcg*>E$#-(g+_`*Ksq^2g-Fj@3t?ua_$7w%p*iWYzMc$2D|Lv*KOw)%a zW{7N^aBFMMlisINiuDiYh%aN&>t*s!sO)j$dJ@86y`a0ntno(48!=zCg10@Q(GNO& zcV=WUOutH{%?HT)@`5ack`e8Bx{_L zv`QgoT_%5GZ02&-Z?j7d1aPIkb(1wc@R-B+E61mh4NNUbe`i@OoXC5BVl6{Z**SlP z;>z5lg}?~vc&b)2ZAz{T4}&BFgSZTzjJl{ApPD)YCp$9(7ayZ2Yf=HVgs3)~wgdwwDA3g9K2&4WEsQs5+mz3RpkbeSgCWm;U>6X!1QK6-K$q%*?jJ(m;h7Y#EZGT5MX9 o44j-S42qkBnKPJ_7b=F_yuSA|BeRIG7=swd{SY7mV=yoP0F3J8YiZa_785lMK1uEv84c?e{$Uxxh z@{|MymW>NyXLYVx6qJ5M#`0WiM9iZT&zJZH{@?4zvqB)SO)pmGZuR>&-%HZXkZ2^sLy4&R|&$CcDvTmA0nuipL6=bPlOwcjc}$1QudDf;EQ8IA_u zTQo{{PbanVe(i7xd>6DXCam#luxNrGQZb0-~C1nvx8h zoGc7-lfN+PD#<{E8ALVsG!z*)*_ar(_!vc5O?p`O?$ug8mybbqvNMydmo!Y77Mqp? z11BpZgB(9lS@wLqvJ9twTiueX(_OPJ6##P-|L_TdI+S> z$akJmIHq_v5tve1gUXIs@!te^M+dgfhN?`zLFuXHr??xnk7dcoWi zBGXxw>ViD7rjT|L1Z+GUbiz*T+8Axvm6kO^F{_A z7BW&UnO{&O8PJxu34sGvP-HnjbO>>DK5$()m?0WuRC000+T23r{wDF!JS00{{M z03Va=0WAm}000+94o4xAAp#iz9+Nu)Jt7size == 0; } #endif diff --git a/Src/Core/LinkedList.c b/Src/Core/LinkedList.c index 0d7fc11..4940acc 100644 --- a/Src/Core/LinkedList.c +++ b/Src/Core/LinkedList.c @@ -194,7 +194,7 @@ FledastyError fledasty_linked_list_insert_after_value(FledastyLinkedList *curren if (current_node == current_linked_list->end) { new_node->next = NULL; - + current_linked_list->end->next = new_node; current_linked_list->end = new_node; } else { @@ -205,3 +205,20 @@ FledastyError fledasty_linked_list_insert_after_value(FledastyLinkedList *curren current_linked_list->size += 1; return FLEDASTY_ERROR_NONE; } + +bool fledasty_linked_list_has_value(FledastyLinkedList *current_linked_list, void *value) { + if (current_linked_list == NULL || value == NULL) { + return false; + } + + FledastyLinkedListNode *current_node = current_linked_list->start; + while (current_node != NULL) { + if (hallocy_compare_memory(current_node->value, value, current_linked_list->element_byte_size)) { + return true; + } + + current_node = current_node->next; + } + + return false; +} diff --git a/Tests/Main.c b/Tests/Main.c index 3115622..3b4dcff 100644 --- a/Tests/Main.c +++ b/Tests/Main.c @@ -124,6 +124,10 @@ int main() { test_linked_list_node = test_linked_list_node->next; } + if (fledasty_linked_list_has_value(&test_linked_list, &insert_value)) { + printf("Linked list contains %d\n", insert_value); + } + if (fledasty_linked_list_is_empty(&test_linked_list)) { printf("Linked list is empty\n"); } From e29d271dc47ffcaae4d8843f3b6623ba23cdf4e7 Mon Sep 17 00:00:00 2001 From: Mineplay Date: Sat, 26 Apr 2025 05:33:29 -0500 Subject: [PATCH 10/13] feat(linked list): implemented remove at index function --- Include/Fledasty/Core/LinkedList.h | 2 ++ Src/Core/LinkedList.c | 36 ++++++++++++++++++++++++++++++ Tests/Main.c | 2 ++ 3 files changed, 40 insertions(+) diff --git a/Include/Fledasty/Core/LinkedList.h b/Include/Fledasty/Core/LinkedList.h index 49d9710..09f8e45 100644 --- a/Include/Fledasty/Core/LinkedList.h +++ b/Include/Fledasty/Core/LinkedList.h @@ -48,6 +48,8 @@ FledastyError fledasty_linked_list_insert_at_index(FledastyLinkedList *current_l FledastyError fledasty_linked_list_insert_before_value(FledastyLinkedList *current_linked_list, void *before_value, void *value); FledastyError fledasty_linked_list_insert_after_value(FledastyLinkedList *current_linked_list, void *after_value, void *value); +FledastyError fledasty_linked_list_remove_at_index(FledastyLinkedList *current_dynamic_array, const size_t index); + bool fledasty_linked_list_has_value(FledastyLinkedList *current_linked_list, void *value); static inline bool fledasty_linked_list_is_empty(FledastyLinkedList *current_linked_list) { return current_linked_list->size == 0; } diff --git a/Src/Core/LinkedList.c b/Src/Core/LinkedList.c index 4940acc..ed840d8 100644 --- a/Src/Core/LinkedList.c +++ b/Src/Core/LinkedList.c @@ -206,6 +206,42 @@ FledastyError fledasty_linked_list_insert_after_value(FledastyLinkedList *curren return FLEDASTY_ERROR_NONE; } +FledastyError fledasty_linked_list_remove_at_index(FledastyLinkedList *current_linked_list, const size_t index) { + if (current_linked_list == NULL) { + return FLEDASTY_ERROR_INVALID_POINTER; + } + + if (index >= current_linked_list->size) { + return FLEDASTY_ERROR_INDEX_OUT_OF_RANGE; + } + + if (index == 0) { + FledastyLinkedListNode *remove_node = current_linked_list->start; + current_linked_list->start = current_linked_list->start->next; + + hallocy_free(remove_node->value); + hallocy_free(remove_node); + } else { + FledastyLinkedListNode *current_node = current_linked_list->start; + for (size_t node = 0; node < index - 1; node += 1) { + current_node = current_node->next; + } + + FledastyLinkedListNode *remove_node = current_node->next; + current_node->next = remove_node->next; + + hallocy_free(remove_node->value); + hallocy_free(remove_node); + + if (index == current_linked_list->size - 1) { + current_linked_list->end = current_node; + } + } + + current_linked_list->size -= 1; + return FLEDASTY_ERROR_NONE; +} + bool fledasty_linked_list_has_value(FledastyLinkedList *current_linked_list, void *value) { if (current_linked_list == NULL || value == NULL) { return false; diff --git a/Tests/Main.c b/Tests/Main.c index 3b4dcff..8115263 100644 --- a/Tests/Main.c +++ b/Tests/Main.c @@ -118,6 +118,8 @@ int main() { insert_value = 90; fledasty_linked_list_insert_after_value(&test_linked_list, &insert_at_value, &insert_value); + fledasty_linked_list_remove_at_index(&test_linked_list, 2); + FledastyLinkedListNode *test_linked_list_node = test_linked_list.start; for (int i = 0; i < test_linked_list.size; i += 1) { printf("Linked list get: %d\n", *(int*)test_linked_list_node->value); From c7b866ce1d011311bc254c882e8dc753b78f6092 Mon Sep 17 00:00:00 2001 From: Mineplay Date: Sat, 26 Apr 2025 07:32:29 -0500 Subject: [PATCH 11/13] feat(linked list): implemented remove value --- Include/Fledasty/Core/LinkedList.h | 3 +- Src/Core/LinkedList.c | 73 +++++++++++++++++++++--------- Tests/Main.c | 2 + 3 files changed, 56 insertions(+), 22 deletions(-) diff --git a/Include/Fledasty/Core/LinkedList.h b/Include/Fledasty/Core/LinkedList.h index 09f8e45..c3ccc69 100644 --- a/Include/Fledasty/Core/LinkedList.h +++ b/Include/Fledasty/Core/LinkedList.h @@ -48,7 +48,8 @@ FledastyError fledasty_linked_list_insert_at_index(FledastyLinkedList *current_l FledastyError fledasty_linked_list_insert_before_value(FledastyLinkedList *current_linked_list, void *before_value, void *value); FledastyError fledasty_linked_list_insert_after_value(FledastyLinkedList *current_linked_list, void *after_value, void *value); -FledastyError fledasty_linked_list_remove_at_index(FledastyLinkedList *current_dynamic_array, const size_t index); +FledastyError fledasty_linked_list_remove_at_index(FledastyLinkedList *current_linked_list, const size_t index); +FledastyError fledasty_linked_list_remove_value(FledastyLinkedList *current_linked_list, void *value); bool fledasty_linked_list_has_value(FledastyLinkedList *current_linked_list, void *value); static inline bool fledasty_linked_list_is_empty(FledastyLinkedList *current_linked_list) { return current_linked_list->size == 0; } diff --git a/Src/Core/LinkedList.c b/Src/Core/LinkedList.c index ed840d8..fa6c8e2 100644 --- a/Src/Core/LinkedList.c +++ b/Src/Core/LinkedList.c @@ -215,29 +215,60 @@ FledastyError fledasty_linked_list_remove_at_index(FledastyLinkedList *current_l return FLEDASTY_ERROR_INDEX_OUT_OF_RANGE; } - if (index == 0) { - FledastyLinkedListNode *remove_node = current_linked_list->start; - current_linked_list->start = current_linked_list->start->next; - - hallocy_free(remove_node->value); - hallocy_free(remove_node); - } else { - FledastyLinkedListNode *current_node = current_linked_list->start; - for (size_t node = 0; node < index - 1; node += 1) { - current_node = current_node->next; - } - - FledastyLinkedListNode *remove_node = current_node->next; - current_node->next = remove_node->next; - - hallocy_free(remove_node->value); - hallocy_free(remove_node); - - if (index == current_linked_list->size - 1) { - current_linked_list->end = current_node; - } + FledastyLinkedListNode *previous_node = NULL; + FledastyLinkedListNode *current_node = current_linked_list->start; + for (size_t node = 0; node < index; node += 1) { + previous_node = current_node; + current_node = current_node->next; } + if (current_node->next == NULL) { + current_linked_list->end = previous_node; + } + + if (previous_node == NULL) { + current_linked_list->start = current_node->next; + } else { + previous_node->next = current_node->next; + } + + hallocy_free(current_node->value); + hallocy_free(current_node); + + current_linked_list->size -= 1; + return FLEDASTY_ERROR_NONE; +} + +FledastyError fledasty_linked_list_remove_value(FledastyLinkedList *current_linked_list, void *value) { + if (current_linked_list == NULL || value == NULL) { + return FLEDASTY_ERROR_INVALID_POINTER; + } + + FledastyLinkedListNode *previous_node = NULL; + FledastyLinkedListNode *current_node = current_linked_list->start; + while (current_node != NULL && !hallocy_compare_memory(current_node->value, value, current_linked_list->element_byte_size)) { + previous_node = current_node; + current_node = current_node->next; + } + + if (current_node == NULL) { + return FLEDASTY_ERROR_VALUE_NOT_FOUND; + } + + if (current_node->next == NULL) { + current_linked_list->end = previous_node; + } + + if (previous_node == NULL) { + current_linked_list->start = current_node->next; + } else { + previous_node->next = current_node->next; + } + + hallocy_free(current_node->next); + hallocy_free(current_node); + + current_linked_list->size -= 1; return FLEDASTY_ERROR_NONE; } diff --git a/Tests/Main.c b/Tests/Main.c index 8115263..4a7805e 100644 --- a/Tests/Main.c +++ b/Tests/Main.c @@ -119,6 +119,8 @@ int main() { fledasty_linked_list_insert_after_value(&test_linked_list, &insert_at_value, &insert_value); fledasty_linked_list_remove_at_index(&test_linked_list, 2); + remove_value = 0; + fledasty_linked_list_remove_value(&test_linked_list, &remove_value); FledastyLinkedListNode *test_linked_list_node = test_linked_list.start; for (int i = 0; i < test_linked_list.size; i += 1) { From 22e9d69cedf3701e1d5a22b5e135d611bb7bbff8 Mon Sep 17 00:00:00 2001 From: Mineplay Date: Sat, 26 Apr 2025 07:35:47 -0500 Subject: [PATCH 12/13] fix(linked list): added missing const to function parameters --- .gitignore | 3 ++- Include/Fledasty/Core/LinkedList.h | 4 ++-- Src/Core/LinkedList.c | 3 +-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 41cb4a6..7ab93c8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ Build -compile_commands.json \ No newline at end of file +compile_commands.json +.cache \ No newline at end of file diff --git a/Include/Fledasty/Core/LinkedList.h b/Include/Fledasty/Core/LinkedList.h index c3ccc69..82c2fc6 100644 --- a/Include/Fledasty/Core/LinkedList.h +++ b/Include/Fledasty/Core/LinkedList.h @@ -51,7 +51,7 @@ FledastyError fledasty_linked_list_insert_after_value(FledastyLinkedList *curren FledastyError fledasty_linked_list_remove_at_index(FledastyLinkedList *current_linked_list, const size_t index); FledastyError fledasty_linked_list_remove_value(FledastyLinkedList *current_linked_list, void *value); -bool fledasty_linked_list_has_value(FledastyLinkedList *current_linked_list, void *value); -static inline bool fledasty_linked_list_is_empty(FledastyLinkedList *current_linked_list) { return current_linked_list->size == 0; } +bool fledasty_linked_list_has_value(const FledastyLinkedList *current_linked_list, void *value); +static inline bool fledasty_linked_list_is_empty(const FledastyLinkedList *current_linked_list) { return current_linked_list->size == 0; } #endif diff --git a/Src/Core/LinkedList.c b/Src/Core/LinkedList.c index fa6c8e2..5b415e1 100644 --- a/Src/Core/LinkedList.c +++ b/Src/Core/LinkedList.c @@ -22,7 +22,6 @@ * ----------------------------------------------------------------------------- */ #include "../../Include/Fledasty/Core/LinkedList.h" -#include "Fledasty/Utils/Error.h" #include #include @@ -273,7 +272,7 @@ FledastyError fledasty_linked_list_remove_value(FledastyLinkedList *current_link return FLEDASTY_ERROR_NONE; } -bool fledasty_linked_list_has_value(FledastyLinkedList *current_linked_list, void *value) { +bool fledasty_linked_list_has_value(const FledastyLinkedList *current_linked_list, void *value) { if (current_linked_list == NULL || value == NULL) { return false; } From 8df3b2a76b602541d2694395a1e9081c2d349a7f Mon Sep 17 00:00:00 2001 From: Mineplay Date: Sat, 26 Apr 2025 07:39:56 -0500 Subject: [PATCH 13/13] fix(build): removed cache folder --- .../index/Allocator.h.1762D0145907E8DC.idx | Bin 942 -> 0 bytes .../index/DynamicArray.c.4AD21698FC6EDB91.idx | Bin 4890 -> 0 bytes .../index/DynamicArray.h.83D0CABD35D124C4.idx | Bin 1970 -> 0 bytes .cache/clangd/index/Error.h.EB9FC54DFDA17FC2.idx | Bin 588 -> 0 bytes .cache/clangd/index/Error.h.F8351C3B8B3344C7.idx | Bin 596 -> 0 bytes .../index/LinkedList.c.D81166C9F6E527C3.idx | Bin 4486 -> 0 bytes .../index/LinkedList.h.874993982F1D060C.idx | Bin 1908 -> 0 bytes .cache/clangd/index/Main.c.3B29896BB83AC389.idx | Bin 1682 -> 0 bytes .../clangd/index/Memory.h.4C603E058198611C.idx | Bin 832 -> 0 bytes .cache/clangd/index/Queue.c.05F0749C9DEA8BEB.idx | Bin 2540 -> 0 bytes .cache/clangd/index/Queue.h.0FDB3A51CACEA373.idx | Bin 1502 -> 0 bytes .cache/clangd/index/Stack.c.C4C7FD383A3A2CFD.idx | Bin 2140 -> 0 bytes .cache/clangd/index/Stack.h.FBE39392F0B9E960.idx | Bin 1374 -> 0 bytes 13 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .cache/clangd/index/Allocator.h.1762D0145907E8DC.idx delete mode 100644 .cache/clangd/index/DynamicArray.c.4AD21698FC6EDB91.idx delete mode 100644 .cache/clangd/index/DynamicArray.h.83D0CABD35D124C4.idx delete mode 100644 .cache/clangd/index/Error.h.EB9FC54DFDA17FC2.idx delete mode 100644 .cache/clangd/index/Error.h.F8351C3B8B3344C7.idx delete mode 100644 .cache/clangd/index/LinkedList.c.D81166C9F6E527C3.idx delete mode 100644 .cache/clangd/index/LinkedList.h.874993982F1D060C.idx delete mode 100644 .cache/clangd/index/Main.c.3B29896BB83AC389.idx delete mode 100644 .cache/clangd/index/Memory.h.4C603E058198611C.idx delete mode 100644 .cache/clangd/index/Queue.c.05F0749C9DEA8BEB.idx delete mode 100644 .cache/clangd/index/Queue.h.0FDB3A51CACEA373.idx delete mode 100644 .cache/clangd/index/Stack.c.C4C7FD383A3A2CFD.idx delete mode 100644 .cache/clangd/index/Stack.h.FBE39392F0B9E960.idx diff --git a/.cache/clangd/index/Allocator.h.1762D0145907E8DC.idx b/.cache/clangd/index/Allocator.h.1762D0145907E8DC.idx deleted file mode 100644 index ae9048eeb462d32a63a7032408112b79a7962e67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 942 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 BO!NQ% diff --git a/.cache/clangd/index/DynamicArray.h.83D0CABD35D124C4.idx b/.cache/clangd/index/DynamicArray.h.83D0CABD35D124C4.idx deleted file mode 100644 index c3dd364b0c9cdfc7203d31ff7e76f72ae56ff613..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1970 zcmYk64NOy47>2(B6>d4bC=_gqLNEQZYfEWq0jEwBt-`?HEh3Tm!%sk^3@QlfWTJ=> z5f#w65j2Q82QJe9QxqK$6C^qpX11zfD6UhNh@wsyireXJ4{(y6+`jj{-~Hb2Jngbr zv-vwufSASnYdrwK4}Ywiax+Ib0R0p|LCvjC+ATF{Zhe zPS!TmXj5kAYej)~ckecj42t8WiE*k_wY|9G=H-D`DM3%tU**PMS@_^i>#+4~MyRb# z-?Tr!(Kw+>I`jChh!?lDNvqCRMCg8`e(h@Q+#4LdN+u|M+_1&eQCiVle z4p091de+%T*EdcUYL-7gk@Gxzvu#1!`y=uj5&sLtJ-r_<$O*2xTejn$x!c?K zy?nN~KCa=z-%pk|hRdz@Wpg6SVp@`yh99i*|7fS^{h62k+l=PGs`c8XN$DbC$Dvz2 zk4Acy{B$VU9;{l|bUgloxZGT7V3>B{u{`>#O!_2uXUZ8-wXOCH^`!kowX#Z`+rh6CFFKm@l5Vc&ofp z?zwSlwnccXcXP#*^EU$cf_uE)olsU(6!@-Ly`3BMj_!M3y1n6HrC)bngh%u-@g7(Uv(|aJ0oYRiI3SQ76CjXbHXMsl(n<|b z-W-@L<}lpXsBUY^wSTce>bwt(idLzCnmEB}Xx2vMZn4Km5lkZnEv=0NiuQ0CYN9IX z+b1HX(ID~#M(QUOu^V_f?Xu32Jg|F&Blv(kuc0+jK>2W;&vRo|ya}2Yx(I=W81%H> z2o!R28g8u2nEN)<@)-gpF(_z-4yZ|( zK>2w&4c`5gtDo;M)*_IT3c3k82~YwGbb+{nW$=#Za>tW;ZwSB@WNxwmb_4tq#S0s{ zvol2*)XE+NDpEmBtMLr@?#_tw(WBcpH^^Vo5QH;?c!x}3HCbn1&e*~vo)wB&gM zZP1UMVs2Wxb*4K&^0m6Z><60oZiq30(eaAcyB<&m|M~u$yJhC6iZUnI+97lisn+^5v3Ad^etxDwm8$wwq(x z%OP|S%5Vz~#9S^Qbm5{bRW6-8h20LIh#OriKXo{@xEjksFJTao$>eYm7A%)eutGd1 zPA(arOqgOGNrM=rRyl`E88Ir2Dw+%zF=~@KcI=ci(=`cXW{A;7Y2(Sf5u;P;W{^G* zqc`be$rur1Fc{3E2r@>EF`C52Q<`o{AZf{)a1Iu4SHlD;oZ3M)NlhwZHw&{%S0-6x zzPno9df}X);E&4*O8&TyUv!!$X^i+snCU zT}r4@Ul?lDI%}SZK(ET%3){tytbFjR{zJE$l=Ja}n%O6-=>t@NLx9NwQ_v9!tJ#TO^t6Qx|NxT&HH~QDv8P3<-YzZ1dIPxYJMk@l(~& zWY-IDpLc9iPQoGCFQ<=}CjIDL5bvb(;je7kN5%ss?hlJAbCZq%-8SpPBk7!%%gp&1 z7#SEizkAk%QG!FnJ&QW#0;Z2B0rFq*!=B+myXzzP@`fL2`Ee_zt?r_&*R246_t+$RgPr{0zY0<&a^Kkp~k91x2Z8#S4*q!^j2k1yBeCV157!gFFBcWMF`~ z94HKOHcS}iUZ60@u`pqnD}llwC&GkbZUYK~90n8S+$OZHuk+bWps+ZHxF}4Rp(r&c Z5yUAjN-pLGF*w{3-)*+{SUHD*0RUD?oW}qF diff --git a/.cache/clangd/index/Error.h.F8351C3B8B3344C7.idx b/.cache/clangd/index/Error.h.F8351C3B8B3344C7.idx deleted file mode 100644 index 4ce382cb96718cbae4e2a857d81046c7de1180e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 596 zcmWIYbaV4zVqkDi@vO*AElFfyU|j?oZb=|H0O}$)b9@hxi>S2TssuU!rZr(cIW?}`)Z!mqh@*eUiqQ_=-JKZl?&`Uf=~6fzfm_R5{kIGXKYT5Rin}H3eK%PmSA54H1FfafeS(KVqyb#GZj9d_30EIvR<_DlK z$O8~T1_qeRfx;kX!-Qe(1qy>43loO95-1FEB22i~j)!BrL-u>1usDaf7)%)EWS}s} gy)a>hqSTy35U02(xtJTo;P}4Iq4ZcR+dKva0NkgU;{X5v diff --git a/.cache/clangd/index/LinkedList.c.D81166C9F6E527C3.idx b/.cache/clangd/index/LinkedList.c.D81166C9F6E527C3.idx deleted file mode 100644 index f586042bd0213dd92d24c9f60b3505d424e1df02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4486 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 diff --git a/.cache/clangd/index/Main.c.3B29896BB83AC389.idx b/.cache/clangd/index/Main.c.3B29896BB83AC389.idx deleted file mode 100644 index 427eb78e91e5d465de92d42fa5b74397088d9cb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1682 zcmY+_2~ZPP7y#f6JahwrKuA(U!Wm8pAc~w`2!sNn!)3Ty?jvASl87M@kfeYWsTL@s zh;me5(1O?kZAFj*)0R%LiqryDELy5%9JPooqM?1UeQWw=vU&ga{{1)m@0(3z2%mp+ z6@~?*hsZ=3(iDJUm?`{7q++2v3B#1S7$&Rlhz!rwaW@{b3@u~Gv%d<+b;9M2y$@*B zdFJ)uq4sf$cfI!=@8 zd=oZj5TA5RsN=xo5oUmxJgzeAjnDQSf5 z_TaE}4HaMGBnn*!giLhWWcthrI=6uiISXXjAYP<2D|&}tXgCB9u|s@h&i+tsjfex; z9GIIUriHe(H8SVTA&YPk7qRkvqw%zi2n)ysP6aNAdtAK5^0@#mHFci-dt}_#Ok@unCsIl4d;V=XT+^K3s+ZCRC35tAmt(cjqDWVH9JrQIS1qr zts83PTRih@I1E`9Bnw5^?5=Z>m5udE$j-R4C1Sfvmy8w*=Sv|c;Yp5&(Kku|e_KNB zu*B$pyj%gZ)9^G0lx4}Pwcfq>=tIa>xD^{Q!>cXT|D;I`Z$SmrLv_S-JVsBm3UbumA{%hvsWMbf)Lj!4(RHZVPPn(eI|v9dSpaHxUo#X+=K3 zM=NtPzFBL{ANSXa67fW>C>c-Iiqi3Ptw@f`wW4CYSSwPIfQm$1v3bnqr+LMz6?iA> z!Fu8yBF@;8qIqLU#A%XX&BR1=cs)pT@9%t~e(ecgqsO3`8k=CoXa&OF?2Q_Ww? bejzz@9Ji2t-5(M$4=pO|JTxziwmCn^oH*L;t;W;r?*X+ zJ-h1@!~X|GlaeIfn@b#1pY*xw@QLXzzZY1a3_rGclX|Des=1NgW~Vw0f?g(A?Vc|u z8ZyhByLkeaqSq=1jY}5{A||$|bvAitR$FmhX+KmGtUIBoGrw<*j)TIltS6OMwjSKw zJnL}YoQiiHPLbkKGbR|G5qrElWsZ-F|K_*6zV{{v@Xh6t=53mLPsRV#|G9yOA06)y zn|4Gk#o)jrK}YYhwH2Ix=cAk7)_1UTdGB#@-S(Gx`%dE%i+(?O5cbU^I7IhwbZV&i zGY0+J@7E~RUpoGv?1k{ziIFplD|3@tfT5cf@NT_@iPR|`1|c911bF3m<>VPSSr{4E zIT?9bSGgu1JEmp-golA2BG169$f_vKz{$qUz`+GnpuEOFX+p})Pdp5QFa-*{3JMII ztV|FSE}5RZ)RY$aorggHra+!o9!Wt_YFhC>pj7PPMbDm2*uu-m!>h=k2#S9&FtI(t zb)zy$goTG!&PC1(?qXhf4|zYh;k*hS3Vv|6@G810dc&M9z$F^9b>aC;MlN1)4skJ< zxiV2xHomIZeUKSwE`uBolDQ1>JV@p;DDc3{g{fiWgoF~*D40b+VQ|<$g<-mY!r%~r z3d4*B3WLJ|DqNJBlL%rK7bO?#gBaW(0s?p~(jKlp(DKoYnTMN?fe$9kz`%oG0s#B{ B5V!yU diff --git a/.cache/clangd/index/Queue.c.05F0749C9DEA8BEB.idx b/.cache/clangd/index/Queue.c.05F0749C9DEA8BEB.idx deleted file mode 100644 index 98ae1e7264f05573b63831c8f57dfb37b081943e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2540 zcmYjS2~ZPP7=BT}glrPcA~BGI2P8`%ArVkSqZZIrgF}pHAYh77L7;>}I3(5s@fcba zMe(S$RXQF$6a_6+thX(m)C0AO<9&=4t3y49s$Fni-tJ5$`@R2r|M|VQ6UWi?eI5Xb zGscxWvq~IZ005Ht6_>bj+c^Ln@dluL{)8Q)%f_X zv%kg3wb!kCC4T9@k!J3=v+wY}j_; zf_2G*iZb!`TKZ~mLeW9(*C+Nne%E$=m;Jc5G^gR3CV$81mFl*)uBJA4=45=z+kRWZ zMXPUS9E~KJ+7wg5x%}3~{cYp9uA(!_JEos@R``vH=9&cV2l}0Z)>h3aDRa-e(x;_H zdtNuQWBq~W!u$t2s$JKc)g4spjjH9>+TbWr`Jy6eC zTkDh&AOrv?6Ur#LTBxP~uTO6f5Xg~xE2V3p^+iVw0n`k^Bs4*}MyP>+=hN#WL3-$x zHo#w8PXHA|DD){DAdm2g7yx+Q96-q!4?O3I;ANXW93nt4Lof=Bp>j${h4v77LeNp7 zx*H1yz9B#;L&)*Tk;=n;!li)6_4?=mxU#Z~FZlovGyH__U+#22F9OP}vMHYAp{!6= zhEXavRp`kZrg76e2yr;RJ+(3o=y_bruS>G(^9;TO3?)M)h($mxsbwLZMyJCz-7wuq zjACJ|3L~?`9EdYW)utLS$|N%-7!?_cVmvK`v&dNzghtB+Rck^=8G8|s(o#dQbG=sY zL8^XZ4<^?YCvymBF<3?-zXRxvtvfYqGx-Emk*Ywvm!hd;jC7=qWz*AomdzY#9*o=( zaDrrll7*rs48_QjZ7IMgO_MedBS)lz<;5N89*oMnl#xHGzWC^@^i zn10pD8RfpWYnk!J2gIvUc4!yF?mlpc-Bgn+SoS(@k2e8hMX@CAi2W1$C=`K!Q^~0; z0XifOmQ<%nrg@NjZfoKF4d?a>2q^C_m!c>H3=xO;V-yC%n3MnUA)o;oSZKI(xE$MP z86AXCk~E2BOA1el#I_VwiUy-xX)cSIC(7&oO7%PhERq(nY%Y<@V_WlhxANbJ%Lf>N z#qr}5xEo{mV-%>91kB=RDNt|FD%02QdkRI7rPnq*DL-(udkS9heG%*8;ak$=w+Y9X z%WQd(B+CG29r|^=S99dyWnA$OxtTdxeBTr5A*X7d3S; zl9K_M09R-PMgg9V377;ZW9HkI@95rN?3!LYjQQulPb=Ju#k)Jd_mV4=K|q0=1E9pO i9?b&~gjc6KXXJ|+=-+pMFTZa;5g{P^i={$8p5%X%m`CXV diff --git a/.cache/clangd/index/Queue.h.0FDB3A51CACEA373.idx b/.cache/clangd/index/Queue.h.0FDB3A51CACEA373.idx deleted file mode 100644 index ca5a60d18968d05c86b5966d760fae4f6474c417..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1502 zcmYjReM}Q)9R9Tw%C*<46pm6Xw3K?ag$^W;3={*3AQKt|$C$$z9Ua38QHp@*Hkf21 zO6MwwV!8=+AAjHoIAJ=bGC=-u#W4(E9k5MsV3x_2O_t%u-n;fCUUI*?d*0v2^S;lM z%gIbnAM*v+SeRK=VlLk;0DwSrTg%IeZ9ITp1XMX(xm~7#*cJbLQ8@QQUdaW%xaHVZ zdq}_oW#XgmuFHep6$$yjP9Heg^nh2xoN}I^Gs&{(CMS5 ziBEREYKdO^zANlHbdQb)w zFhBgfou4?{|7dPq>p}IHv3FA=ain7Cm~sE$H)qD<9~LhB(W(tQc_ZOqecHBCdOV^% zW#;(Zs(@X8hG$pO4=!Zz!K8_lA7VW5Z9NLP_u3}TG*EV zb+PHK!Y3#8On;nqSq;`hC41VCD)qC>k>;inB?%!&EB2xpiqQcf^Z^mYqkYS4Zn?Q* zZ!87j{y?k5Dk&Gh-;*7Z?il`3-@J>00CqV*rQiZyUfKC+j;+=49tjH6*%)XvZ~+KH z0OShPzFKTk_AQluNPz^^M+QbJxPa?bisp#Czkj!rp!CcGT2JXCfbipc=qavEM~4Q> zI!IWF6Qca0LV)n)fm(_N^w^6f4U36iQJ_Kt)B$Rm3wQugGN@@d_v{)8a$K*YbXu;S z+y9fi1D`#8+<#jPVzdJ-Un}JT5L`MMpe!(+(*JVrJ_TXy0I^!i1w0_@MC)G;)hi1W z$k4JztWk0SFQ>;z+kUED^DhaZc)r2Upx_RO;}2!#H?7HhfSm)*`?DWilJH2{NEv0` zY=}=D6ipo35#&qKDuGIbh(R$D8iRQ+Og;?k^9<46#KJ%=!bvxC+6nFEES^fne4R7{*3G zyf_1RaV$TAIoZ8179BNV6~|4m*eIJ5*^6U|g(8o%UKkzIY9;|62ubT!>Edt)lGbbV zF_;ud8`K8lvXpd`B8tJx&=IXMuE(3jg0RGpQ!p{C41!sQU>J8qd^uBiaovtmt*owR z$pt}p|0)t^$H-I3V G0q{S{9H|xn diff --git a/.cache/clangd/index/Stack.c.C4C7FD383A3A2CFD.idx b/.cache/clangd/index/Stack.c.C4C7FD383A3A2CFD.idx deleted file mode 100644 index 0b9fcabcbfd2006a221f19473a4f327d4be37013..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2140 zcmYjS3s6%>6nznb1YQUbFg$qqypSIuB*-@jmR|w^f$%9oB#6Nz{C`6%qGGiOt(~z} z1v^M#rq(*xQ8QRkYaLp3to1WcjWwuLrBqQYSSz-+BdvXb*}Uvbl0AFR-h21lyPJZ{ z^z=ec2vV6cTkFm1%iSReqT?US`sV6!5(J$iLr`nqvBEXApuVPy|K7Jj(|wj7|J`kRVSc&y(P^)h&*od6 zohcR?{f?4ny~pa_l580wN+w!y% zwbPC4>b$)8G|4HJ@`kj2KxwzX`8)I_?@suZ!&`ov+di7JS9R~to)lxxWNR*?qagM7 z)#e(*g>GN8xT4(H_wv%prkU8jd$k8rDFauxUip6W!NL@F{UaLN_;fPix)neNo=lsbbbz z(%WKtjPmZ)LG-$IvfK8gL@lze;&;j8kM@|8Y?A)3d?H#BIzKw;Y3op~9W7Ft5Jj~( zX?x+LYTKE>nY)Ip+4G0m2PY)@jFAq`7_E(Zx?q<4g}gTW2rfeR||t zqI{R>!v=-%@z0$b46@31KDl{6wtR!!653L+YNYqz{0W%-SzOC&O2fxx;veo_>7S01 z+aB$jE;Hu0&)Mr<5B_A!vOdp$wV!%!)3*I1ke8Kvud#F9?f5Y|8M17wUv~(v^>Pj} z+S?V-1VcOs!t@?`gc;@$hCmcgcSwkmnB>6tfpsZ8e%&x6zzG^34aOAth%kuau>=YZ z!3kLf6J45IE`+WU?>zPpgyRO$@k$4A<9y>#Sl=lxx%8xyD{dii(a=kmIN$;F|-IRb#BDa zCbR{hG$wV&KAw67P7+82O0W!LQi;@w_CD^?=MYRM}{$shH;23x*}aAAinFKoYvd#U@Rcy4bR%*>OY$ zIgA{(3yR875=dL2Z2$=T;`unr5Aq4v#WuBiO?2Z5CI%-8fH*Nb$-~3qfqpL-3#ErL zh{VF_;VwuLCUH?$k|0SUnAwc%5D*j>E?K80P!YX|K_EknK@Q}Cu_{%S28ak_)%0ox zKpzCU3;NOVBUHR4=mLZYC1ePh1d`IFE;boM=38V-b3*z11v2w_@*N7SIMQ=|29n_3U{^bGaw_0+Q{! z2Z;8c)C>4>l7A8pECZeJ4t2agASYnPmmRMTSf<_I_%3B{h#kMMs0fWE(oyggQD6^@ zX}B60NC(FB9DM{)93x^BfS|_OQeAFMx!oPcM08O!;VzOM>4K7J$uh!uK0QAgIJd=K zv9(vMeuckR(Vo#RmsjVmbN0Hhq=Dz(aq2a$Aqt^XB8mc1Pzk>pNJ9mF0S7<6<4py} zZ#LJJJLZ;Vqb0#HVL84Q2OCTv$XQE>ghdWLp78!!73$7pu{jWjAQ|gTb^bV9<{RYY R?dwN_sq{d9#3z8l_#bfV$guzb diff --git a/.cache/clangd/index/Stack.h.FBE39392F0B9E960.idx b/.cache/clangd/index/Stack.h.FBE39392F0B9E960.idx deleted file mode 100644 index 4a6d8b99e9fc30987e520206af746b37ffd98d7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1374 zcmWIYbaM-1Wngel@vO*AElFfyU|`&9g@1~m*N+R5P!!iwWS*{fs(+#a(xPN#*|PE;+O)|hA{wf5Ti)!sXMmi1Z-sky2y*`zC7 zkv!9>!{Yf)y$0{OPQD2h9Z_6Qrf@&LxYJqMJ;%DN-AZuB##RoL)NLt{VD(CH|9@Uw7G_%xH2~>85keyw#5mwu{$R5F$i%mh$?a` z%76(54q%)CfuVxrxmlA%3V0Z#AOZ}cnrxbq44j-S408O8qO2kMZz@{19INMJ5CrO% z7nGL-6EOXv=F5{DX9!N=VUU68*WlAoWZ-0DV&LKf>Nn|O-Md$7`CL8*S&)8id44bf z)88)2qBd9N_G&%`UZAv+u#zO0fJu7?J(%q7FL{KAK^kVf7Mqp?11BpZ#Ch5CMZf%5 zt#pQmL6U(%R7Y4x3rv9B&m#b|-$L3h@pBsUH68|Wm7!v1XayoVta(^MrD);3y-Kgi#!)BM0i9MSroZo@xvpk8m1Zpw@XyD zK(!3Ud#{s|Zy+lz$;c%t&LJ)aGZ&^6C=7~Mm@q6#895tkm!I41A|FJ)f5&mJfdoe#^?q#l*0BGj_&H#5+1231}p!x_|gkql?h;Ds3uQv-A~I4!_DQ