From c21bcbc8c0d754d23a61a6a2e70b85459b37cc78 Mon Sep 17 00:00:00 2001 From: Kyle Van Essen Date: Tue, 27 Aug 2024 17:43:45 -0700 Subject: [PATCH 1/2] Prep 14.4.0 --- CHANGELOG.md | 17 ++++++++++++----- Podfile.lock | 12 ++++++------ version.rb | 2 +- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d1ddd4e..44ad8987 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,12 +4,8 @@ ### Added -- Added new `isScrollEnabled` property to `Behavior` to disable scrolling on a list if needed. - ### Removed -- Revert: Fixed an issue where animations would occur when dequeuing / reusing cells. A layout is now forced without animation before presentation. - ### Changed ### Misc @@ -18,6 +14,16 @@ # Past Releases +# [14.4.0] - 2024-08-27 + +### Added + +- Added new `isScrollEnabled` property to `Behavior` to disable scrolling on a list if needed. + +### Removed + +- Revert: Fixed an issue where animations would occur when dequeuing / reusing cells. A layout is now forced without animation before presentation. + # [14.3.1] - 2024-08-08 ### Fixed @@ -1055,7 +1061,8 @@ listActions.scrolling.scrollToSection( Earlier releases were ad-hoc and not tracked. To see all changes, please reference [closed PRs on Github](https://github.com/kyleve/Listable/pulls?q=is%3Apr+is%3Aclosed). -[Main]: https://github.com/square/Listable/compare/14.3.1...main +[Main]: https://github.com/square/Listable/compare/14.4.0...main +[14.4.0]: https://github.com/square/Listable/compare/14.3.1...14.4.0 [14.3.1]: https://github.com/square/Listable/compare/14.3.0...14.3.1 [14.3.0]: https://github.com/square/Listable/compare/14.2.0...14.3.0 [14.2.0]: https://github.com/square/Listable/compare/14.1.0...14.2.0 diff --git a/Podfile.lock b/Podfile.lock index 92c38e37..ca33e8d1 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -2,16 +2,16 @@ PODS: - BlueprintUI (4.0.0) - BlueprintUICommonControls (4.0.0): - BlueprintUI (= 4.0.0) - - BlueprintUILists (14.3.1): + - BlueprintUILists (14.4.0): - BlueprintUI (~> 4.0) - ListableUI - - BlueprintUILists/Tests (14.3.1): + - BlueprintUILists/Tests (14.4.0): - BlueprintUI (~> 4.0) - BlueprintUICommonControls (~> 4.0) - ListableUI - EnglishDictionary (1.0.0.LOCAL) - - ListableUI (14.3.1) - - ListableUI/Tests (14.3.1): + - ListableUI (14.4.0) + - ListableUI/Tests (14.4.0): - EnglishDictionary - Snapshot - Snapshot (1.0.0.LOCAL) @@ -46,9 +46,9 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: BlueprintUI: 1818f187a6be6c69266a4e30f03a6ad7755530e9 BlueprintUICommonControls: 6ceffc16822dea3d1910029aa87eed7a386e4e3b - BlueprintUILists: 1f92f30a9971ce2d6b0442bbc698ac1776436996 + BlueprintUILists: 799f21a75c76968f84ab768dcba0950ff53e23f8 EnglishDictionary: 2cf40d33cc1b68c4152a1cc69561aaf6e4ba0209 - ListableUI: afeac8ace490d931bbae35cfaf1bf6354bb02b03 + ListableUI: 04974e3cc04a2df7f93242b489431ea86e69329b Snapshot: 574e65b08c02491a541efbd2619c92cc26514d1c PODFILE CHECKSUM: 2b979d4f2436d28af7c87b125b646836119b89b7 diff --git a/version.rb b/version.rb index 2ef82ec2..0ad5fbf1 100644 --- a/version.rb +++ b/version.rb @@ -2,7 +2,7 @@ BLUEPRINT_VERSION ||= ['~> 4.0'].freeze -LISTABLE_VERSION ||= '14.3.1' +LISTABLE_VERSION ||= '14.4.0' LISTABLE_IOS_DEPLOYMENT_TARGET ||= '15.0' From f58d51f146953060ffa8a3d61b062cf8d251f187 Mon Sep 17 00:00:00 2001 From: Kyle Van Essen Date: Tue, 27 Aug 2024 17:45:44 -0700 Subject: [PATCH 2/2] Update docs --- .../BlueprintLists/docsets/BlueprintLists.tgz | Bin 104768 -> 104772 bytes docs/JSON/BlueprintUILists.json | 94 +- docs/JSON/ListableUI.json | 2070 +++++++++-------- docs/Listable/Structs/Behavior.html | 34 +- .../Resources/Documents/Structs/Behavior.html | 34 +- .../Contents/Resources/Documents/search.json | 2 +- .../Contents/Resources/docSet.dsidx | Bin 380928 -> 376832 bytes docs/Listable/docsets/Listable.tgz | Bin 1092065 -> 1091589 bytes docs/Listable/search.json | 2 +- 9 files changed, 1170 insertions(+), 1066 deletions(-) diff --git a/docs/BlueprintLists/docsets/BlueprintLists.tgz b/docs/BlueprintLists/docsets/BlueprintLists.tgz index c9e09eb3504bbac55b479065d1cc7d8a17339283..1e0c51b491ef230efa3547c34fd33ff00b3dfec7 100644 GIT binary patch delta 63242 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
Tc~&?9E$qMqMYt& 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 R-H!oV2?#*giLU?z3jp9o>?8mH delta 63258 zcmZ6S1yCGYx3+N&9^683cL`2#x8Mx!?hXyX-CcugaJL|V;O_2j!F4X@-2Ya6-(NMo zd(E!hv%9-`cdd85&-B;9{i=h5CyhjakRBgfq7637xS zCDwd(uzCC^GpHGynY0s+{2jo=p98nkr|QfQ(GP7Y(ot zwZxx}Iyv!v-bBB=cvjCk3=usyYm9V=Gz^A1W%l1;uhOsz*rds1^Q^R;a>!TsO4?a_ zF*lWT)mYqx*fet;s(-lK)C8&EXqQjgjVKLm5zAAr)XhW?EA`~k}#vJ*p3}@Y&!jOY@pr7))}hT7xv_>7mcHY)NeYfXzVfZ z!{Ca!v}?f7(~$w{g7pD-eZOXo+w+Y8@Ln$Pk_h}&d>ayaqz3Qi{@)iY@Z;;kIQViqbVibWwvdWY zW~9O9vkp>yZ??|HQl-FpQV##>)Amqt!>xnyHGOzv0*OFUP|7s6s9mDx(2?sVn0Uz& zw)@tU(TfIB@DENN;@%?kO0v=jPZZ2#EyPQvFg2yv) zHy)ntb@{=~;{b3se#*xV_K@&>1$)1qID_|F39DcC8v_^gGW}Rz&y%tt!zFQxmdYw{ z^*h8}rU9xD=RIL(ZF&t-^b*r@*TG}D7|^=OL=(~U{s4{Dua_E|>TlKF5*5@svo>mF zY878c&P>;@Ki}z=G4d~I@4ue8(Q#j5i(ReBm?B0m2$&jUyb>w8XY+0NvGA#Nc{CI* zWp21N`f5o&5V0e>U^j!Qbwou_HNb3?MJ`CE)Krit)hYqSQ^;6K-@V7V@aF>FY@IV%SJjEpk<@%Ejqmn zZKM6!|Bu^3eie7L-3l?u4v)t>|NcRamWv56{GwjvaYhHozd<0xqbDcO-R||EnJX_5uXADp6ZDeOJ zcX-@ztM0RYy<``SW=SAbnFdQ8vig$22bAGJnRFY!7`Pq(Eh@+)M)Tj2D0?6-9JTGP ze_0=$ExPaODmZ#l(4e;Dt2pJ#FJK0v`qnaWBi2BFxfO55SjiLuzdh0}<}r^uivbQ^ zT~O4ycSLU~u0$55q=w%fa5L{~@*xXasv9}Y_vki=%A!8`Qi{!L;0A8qSRrR}ui^_W zS2c3kx6F8aTR8TPQCYFsIC|k?Sa_Dq<@~YLWJ6|8!1xWj+dQb$_u$ZbqmN8qjvlna zx}xFs{P}a(ThHL#fp>QFT*X>drW(LQ#yuxcXSn@iW&4ly%o-?Q%lwur@h&M+l7 zd-LECRGKSiA=rf5Tm;9T0lrCw z7O@1WkHR)L1HnEem^7S`-Gg_nMk_(SIfB>lMr=VNX zoFL4h$hUa>uEvQRnw)WgTT!o=0GL6aU3xa5?}R3bfq;oPSyL4!2gup$eh+R+1C^n5 zCcx9QM=6Q}+xG3I7=C~aeuo$O{h>q}M8S<&_Uf!9jKfa#?0$&5t=H4(_RDm;E!C^O zP}>c~)^{l$d^)ioS5RXn1_Z)UlS~oeGR;?A&?{fZo9#yxKpieFsq)@8Z$@AXjfcA;^7@q%bv1*zKE)a<6O)k;N5boqi|Y*Y^9b79SOTk{e9v~ZMw zm3H%X;V522Zl}xg)Hblge$b(67qyN7T|d=I4KFIY82-Sl#1DZQ2(jc(;oBhr!ee^j z-i{m7%QA&titgWtXI#R5drHeMm^`zVZnC|JOvAyr-f3@w9xILvCho&3QCHZzkhLEk zu^%=ngA`sDm|jF@M>aebS}xJ_`La4M-EJF&GM}$j0KfD7Rlx1dzWe&VIE&lQ<;{Kl z#k~Z$o!?skz^lN9??K|xMn>oJQ@6*pr2We?E{X2LAp35kvsNXIq)>+VE#L)p3k>}e zJi*+8(cbnM%E2=wMPTq^`agYQw_sUh_PjSm^C>WRU}~kl^i5GQ=ned)@lO=13kFY3 zWovx{mrS(00av9gk;lL?zk&`JyhfGqCJD?K&w~Mr@%$$tUzH~?n%$^Bj!-rT48(S( zfxzJGf{6*$_em%x!QJ4qe?ht2kbVN+$C#Nbzvc>>zJi-k&HjljU%_ko z|Nb2B6F9hFAs%69Q;Y}o6-*pAtMoeIwVU&PZf;m;n?}o!{7A0=xC$3{{Cx`E1@P6M zEWV6?ugT>W%w6@*IV&oGfdcl(WAIJ*5%|DcYU}nWaRF>zJ>mZ(l&uENg9V@KpPLyAaO;KlRw#-YD?p6|DPU zU;K8x05l>4=EoyTz}o--Y(;Xv^&#(->33WM-PgGGFV+_?RoqG3c3rQ`>s@#A*UsSI zkHM{A+w%%;@J%#WL+MH=>+$e)WJZd&KY`YK>k0C$ALqHpoPFd%AZ?)4(QRbwDeI;N z+g2;aS8k&ly#4f8Z~=OnOSBZ(fSHn3)!+d@)t_YU80xJ{^Vp6cAe8N&g%DjFORSX+ zR{_*MV zK-r&r`sCYTy90-2x7bXkS@=;G$b<^DjkDSN%_Xddze%qv6#`<@6+rEEho8OqLOF1H z?9Qd<50lm?p-#PJ;N^egL9|upyy;+wBX~S17AF`4}Bn zRbi%l9C_x@nC}OKqGc-V&9rYx%ebLT>o0~$08Qj{P zbR?ygja|#4rcqoQ=Pik4r7qL6CTlJ0^TwvQi&OXW4iBHV!$jF`-mvp|KN#+TDn5wX zXhU+zF#G1Fz4HUfb-yOk>(?m#E)(#bRqUak+x_3CNcVA4P{++SE~5A2ZZmMv!c{r( zl9X{3b}?(aT85^JTC!1wZN3iPRK>+58H#MEekORHNHr6DG4R#SyIth|+HQ*Ml3ye% z*=^9Suy|CkVVm4SX5_vk&@^=3JM?@SbkkVj(2H9#b@pj4Z6hG}(onH~Jd{0k18k8I z4ZqfY#skqXhTF}3-SezbA^_|UW_oN`7TC`JDUe^Mk*bIl44D#4zr+2N%-2C`Q6DOK zUEj>q2$K@w>?x?pd~8W+&_8Gb-`O3Ns2 zWJ}qroa0J8q(P4HM3MMmjsHy}DVov*hs#MPj;TVeEsrm6BW-{@j?2~EHk)s*fDy)r z8*8&br^JPguKRiY?B|o~BKNoGW^iijf&H7Jy`Gox!ArNm^+YjvWl1Ra zi`OgQ=X+iCcywR#woBxBmfO+fy#?k4YaF}{G6;ehwji;#Jpi6I{&t_E-<}I^O*_0b zrc4=87aTgJ12OouGrlm^m*Yja_VTKaUYOZZCB!Q%_;yK&?lgKWLbvO`aTkh3?mne3 z-E)N*Y40FwrEU7>6p)hJY{UlJnqbafUXJDF#DfoKw4APBC!tSGLQms<$~UJ=u_m46 z@wgUQ4%sGP+XLa=_sh2;aG?A^^~sQ%-`8!PzOUz~G|pj-8{KvjenI1S$sBt>&nI8O z-;YLnuybfu+ytwi=`n`rEMleHOCBwKJ;HH-)0Oxa zm>0K2C=T?~vcWQ*&_&~$3Xzqi^Dfa1ah$)*xnswNtkVU3?nCIsH+l5(jUSP zc5T8uTzl?HKO7!E>h5^CCypt!o{IiGReo>oW|0H zf(g2MRWzoqmicI#)!GmvW(G=Bnjn)6lwcG4-)T*;cFFGvQTIc>RY>!N2X##vho1U_ z5PdCn7}ai+CoCrXC~u&XqZ`uB!-O0jc&felJigy^pW{X$;8jr{y#ClNct6N4#1HN{ z&Fy~PUTa0}ZezJ0pD-_K2KTJkci-NxKlQ9`0N1%4o{!OM@eyMbPNh&4o(n3}560upa)Ct&;Ra?0HXthG}YI7$-fp)~8B~K?=!4s%hJWo{8F4WO~`i1(2j&cieaOE=AY7GxXj=$p&Swq4HRgZHwF+dMz~%|4n^` zs8+=OiiA$<7xXOgZrtG=y89c~DYXwvXLB+o8D(A!Z<; zE7CJGvUSH8`kdc|>d`k`h|#eZEFH=u=XJAw_P$h!6w=l%e*-I=nzof`1OD6^eWEik;e)_x`2zDI1gO$GPqm3rV3ByCeRt@@V$0y zpLBb9?o2)HR5x=|S_!4;6a~b;KRau5=mj-g)Y27<1^~wc{L7I=jKaK6Ul_$%993=D zkGMHD?>_|JdG6%u!u%=>_yn>S8NX(I-@W18RflZct}|MJEi;YZuY!8fdXw;b>(Iy- zN(nv9FFI>g`fHSUEC5{LW zg@314RRJkl6+s#_i_%rb`cv&8$(A3oYNM=`wjs=*$EoUy8Zh;=8QUYus$_tOtH{>_FV4eF37#;*Sk%;M@&eY8T~0UYrBs-PEJ9>Z(@nCD5$I*)rb&k^X+Hq>l|kX&mmR2ivYY-Spk6HGssFJ@prI4L)27cOdav|=FmtHgVd!)W(^sHzxYl-CuySud@zw@^7=+8tR#WX?~@Ao@XH2H zGZ1JAztsv&*>O2dcJfqo)?Sm4W?k7cuUWg7Ucz>R^4%(2@&56~0ec{RL_(5suU!;V z3x7CcIJhyF<-I2HgXk2d=<^T<#of0cHQmEauevcPzOclK&?vYt-Et$>6_gcfjW16e zF*o0DsOnVFP#t?CY=&Z3)Sf_TRYDVsXI#L+m=%*;E)w5$BnRmIJs5J@7$DRrAR!Kw z(AIX@5$5DHi2Aepr?~dV_`VWWuYm5 z+#&~(NknZ&4bC$I8@w(92zjhxbq;zFr4f&@NmL<>6C679)uZDGXVY{8uJ<%;3kg^n zjQ8o(r?TG*G|TMGxcAMUe~lto=WpXLe!Xh=^JH3kL|N5W`ym&rlg4}%w8OZ_x~gMt zN3U>zVvaL|TXdR-H*6>Tds)2Zd#BJrOT12PJAYpG}?I*?H>Bp729Ry%r>rJJC zfJbc0`qI<<%rR0*UUgv%8l97Jg&TDQCw|u#okLkN?#`v2?8K{jmoR({(fb_YE*YA; z?I`$wqM>kB1d*~W;H5Li#%Hu|%KBk`QTmjSsM{3h;PQ%dq3J7pwGBJ|KC;UfFnN;M_IFEzmufVW zx2nS(Gn62z<~b^98Ms7gg=|+e>9VD41l91-&@y|ib@ykqQp<6!XO%Mr-7zO@Zpl<}EWQgCa zXNjOH*o0uX;r2FXDN|n31aC`TV4rb0s8Iy+lBujjVGnjp!4-W>{za<3NQ&!O(Ad(n z)f_Zq$XZl8DIgKxve#MD|Iw@G`ui|fr9nLJvth=cV*Y!}>53G06R#dZOjCy%(Bkk4 z@zRRh#B8s2$;u=rtO7v#;42@&Z+4*lVoaUQJ*5Fv}NLBDt8Zu^C<}ZGYiu z4{sP?Y(t6h$5ELNIvzuyGD>_JK`%lBNdgt35LX-6*hnzwm zG`CT$j`E6V8Knal=RU0)R$949h8Ad~=rZ$_aJR7$d~rY%vaqlf%PjiD-Af-3)u1Y2{`Nk z+l(L%a{@$R>lpbPDrmNAk?j^2{E1>ejAw`xkfIkNUZL3~wR4mc=Eeu-XO-29OC;pO zXkyg$w&XuD&GKsThVbiH8)%AG!)mz8G%YOn+5HnUi=hB{+Px5m3H}v2f&Juy&CFlL zLy=Ux;(PDpDCqbYGw5*2AEM}#MsO7|4lHT&%!wMD(LRR16cbXT57a1>-=}ditlIpk zL$>w1BE3167=pqS9?1;cK%!tp?F3`C6!#iH>H-_OA!6H_=o!u%z_=bNJ)rPScs0f| zF8B~;KMA{pg((94Y;-q~i-N^~daHX(k2#=9!Jan(c{4dr z^^3&{m2XY9oBdL@rx9bz?Cm*Pn08J+`$ENLz!oF#y_U*2cDkJ4O;SHD@3lsDS1I$e zq}o#Z24$Cu67hB^DWK*yi-EJfjmeO+#W!PRItdUaEY7C*aPatY$|Oun4xyddl%6VF zEJ81`Ip!J86Tw{Tv-Ft;=?8{LDyQ1_yX#Nz;zcRYC|hwNUys}z(zsCJBcTw2>0Ku=l`{@#nYwCo(=lfG@P*PDdB9KQuwbKWI9%iC~wO6sqH z)m8&&lIk_{ATxnXITarq>03pNKBHh-s#w(3o#Kz5>S`3nKBbKrmot*+xT4;1tJixn zJV3)Lw^qbkFQqryh~P_*bJsZ%E_LrM7pgV)@RLCGZw{)JKzj`m<;3S5Xp7HH-)%9} zNljIy{Z@eDC!*m0@G2Tf%$#5)6LQod(31(gMb=mfSKtu*DDpv-NL7nN)pk(#)NYw7 zfa4>If?Asn3w~@806GS@k^OxqODV5^#c4bI#ixQWcQ*y~2FV)Ceo{#)9IRp@%}s~i zw}GEfj5H9j=0bJ*C6e+@c6}uf7?~{k0p&LAAww>Oifv!2RDl1Z4~4Zyn*)KU1M>@z zv{Hk-MFD%$t2Ot1!(f=p@p5#Z4F+58u*}+eF=N|my)lx7u0aH~M^^$JG0&WC`VUE^ zcgm^-y0w%y6w8y@LYNS26qSXoNQgiji;kvfpj7^TDZV`W^N@06S#zqi0JQ6mG>e>= z9C?iNd))8@HqI(04bD2Zlrq3*v#P!S7ai57GH$Q$+sh>~ zG2$kjV-ft=6p~GMHC=Od(53jmdcJGDumV{MBvOcB2Ju%lv1Q$-^M&rm^96wFOhabw z_w;8wWvez>;&fDv>Cv9S2o>XiDj+hvfbnxG>+KCUWK|L zCj5;H7r;82rRsgRU>w{E&)06O#}8^?MTYhy4G14`dWZ-y76+7HFvCMY1%wy*t{TKO zoj-XcR9el}euw8+FfB(lG~Ud6lePdkdIGWU3USTr?@9bC)mZs2ufMsq??0{O?R)#) znV2Q42k#K|F#aC{J5V=i}Q$6;xaKaD;6;AHti-N`n}{ zfVLETfQ}5fL9>yn*@`d)2`ss0{3e7=1x>Bm4mBm|1lvP|*tho|Cks2!`a%GzNHLo9X6fR5NMAnkB1BM~E`iyRewUS(`w=_y8*a?3^xel3!X$GN^joEzb z+W-3qmRj7BRme13Ks}l2bz44Q;#h$$$sUlxPcZ9hU*{e1qWb9}51}n*7p%nqg=RgX zUj2y(8~4=W<;+ZrIabqFFe}n;pw((YW-h9{$=ZJMukIH)B_9vX^5Se;y9r?C|mWNs9_Ohm9fzCBb zKsXom`Ss`i>IoOpo&oi&9g-80H$j}A2?qJLS6vm&QH#d~b+jdjYHWnk^zu+em zKeN%a`5-FO|K|6dLAd|q_n%Vbm4s|#_+Bz=WOUpd0;ztfxtKhs6BBSj3fmA^;-gV; zMMFs+rA8{>5 zSOs=Bl(1_nR@cp5v4%mF_LXrS-Lcu8Wwm+*&GCMn4q}J9$Nl-1op_giS*3;>U#QHO zN5e|l1<*sf5-L-DxA~}%sqh+^eegsa%OoE6^Yo`fnz~P%`e*bi4|GGO(WAKAON(lz zFi*-I?I5omhx-kHukNI1v%uC&! z%j9hqw8-=J&e>aY?TAs3*q;c(oI^d$+;FGSA z1OuMh7rgE)sVvjbc_{6gJxp+7zrrJs^fK^pu{$oXDCwd&($6?(E;X_BsUnR$0`ySX zpW%W8wP1GCF=8+*Aie*b)r$5sp-jq;ziuPuCDR%~VK^q#f`&)$0=1wYb798}Q4ZDaMB5)Ke;(Enk3& zlEG1k3EwmboCvI4OY?*wiSjS)FR3u~U*o=Ivu{ZqqPCWZUr|L4;LG_w?%3SxZXne| zF_PO3GSqafW#r2j&F-EpkGR8^(?j4tuM|L~nB)|gVPQ;cM>C>|PF$QBgM*VzW&?s? zqAZ-Y@DUklZI#%Vwy#r6m|=oD6*oPkU(i&^%4 z_0b{B^@2d!Lf(;WQ)`NWv5G>(8`*YFqO{KSf{LIncTzxS>_JQ&Y#g@z84ffA_GT%ALkXUc}&^H%Fk!K#h_*HlK8WG*l#OxJ)-jqWvwtqhfyQu zxzU;XnMtoEt>(HS13oe{NTK6ljdxyn3JM>wbn!xCob$@9zJCuLz~x4EvlQ3xaSxMO z4#+gYl8rDCj$j65@#=kV-Ze`T75hA_9kJg}b{EtbPbLsNNNkOYXu6L{Q6y5t^pC*g z`AhRx!rIZc&mOU4z(~gUhd1|k!6JLsRoSN6U(hI443%?NFBsqFcJzrohlcv6qw!Hc zYYxY{R!bN)G^OVPkC``jdM_(b+z|o{ZdizG5mD(sGIU7&gPmi)VnZ+c*({BSi1?d6 z;@4ugCaTQvr^uQ^`=y1GcFXLemwq70!}|WaR`-l0SMJQwe19Y=Vj_VzI`wdRywrn> zj70GVwT$7|p_5+O^gas{7dvtDKDBxA$#T)tQQ)6FJb!3dc!N{+uA}jKdve_h-N=C%WG) zr3(sz2`((~$pw0RWKR_VaO(50!xJ)YnqOt{3&El1jyedrB0FOEcaOy$MJmMnr0I6r zB|T@%sT@mBo0SoGL~*F^Le(1Xu}ihRBG7<33|e!%poq~zU1%DJC~FomN~m>cvR0k@ zAbwGoDOHn47H`{YmAFEAB>S0oa>d3&-fF28;Kwb^CM=JUD9ci9F^Mi8rewoH`l- z4SsW(QNUnHgw1r>B6DE0feW*bNY4R~7)TAx4*fvI*okVu)#lE?g2F<3a4ebyO zF!oaoe(4A8d$2*G25K<#*80OS`~^qd6r!GzT@=Go7&7IAK4%4cm8)#YM=ePKj9)%dIT8<` zBRc<;bzI>e{SGGU3&(WCOU888MU5Pp8bq*s!%vAnu|h1-N8&aq6t+)2I|_dRxN}~M zT~7S-X<_nrA!QSZYLX~8i20Ogzf`!5VBO~;4LVM*hd+s!q6_HH^OOXw9+AQA!$l71 ztlV%8vk%oT`N9uT2#NMM4dE5ebBfTf{VfW?`0>{?swGp`Cx#5u#vuIKWakBw@;pmI zPmLfw>av&2w7XEMPNd?8Vx`nyU^;{>#-e`zCP9w5bwnU@*#dqLI4{W7)!i3dZn1MFt;&A32xXv(=X0;m zOm{l4JC7f=a~Kmypbno%onPT-@kyWgQz1j%D(QqdF||sb?oFX@7i;nWSZ$`IKI z_Hpn9dAVCSAGPa)f&KR;y+NN=4Occ&D)5k0iu6C_(+#PQs4iH-q*G%AMfL25BZT|V z^6Iy@@JEjv$YWE+vSK5wlF_9w&^lSuQsYOXRBpN8)@X>q_j0_<#$qw+B3`o0-qUt| z5SU3{zZk5Jv*`Z7pr>E{t&r}ezNVq2;TupTb9w1yYAI75<$ioR(-?3Gk!0?>EK+aA zzV{_F>R;W_jrUe}o2>tFGF@4dwtu5dFYP|NiauEARGn@i3H3E})`9<6zgK67GJCP9 zL9sH#5*}1gNl*ncVorTr3DzG+1Lk}`%m(0)`)9CT@|3O>5CyEf=Ol^kvNrI5$--aT zx)OX#=d$&%uG<@4@3X0de?YI!5&D?W+(BI6lg@9x*+HZ~y-;XgUghzDC`R-t^F6nk{flJ&F{@?#RToo2 zcv+$2GayNR%$<$y?-w($BS?Oaknyz=gx@v(m)}$@xDkH=&seE>oK2zJcS_F5V7;vt zv;4C3<95h+j(w^LGQ)LIZ?$#X3WH`HI{$-o8E%Gk@MC*G5=fYaMCCu?Fo3g}eyc@* z7FXKp<@=)N}&`5|pggRd;Y*F>4@U%5E{0qi6B!NJd*yt@xV0F5dF zhC8Nm!;KJu+qG5Ns^+YId%*W%D<RA_DJ$6_y@ti$4gJNLGJfQ~*fs0L>vRQ#;1AS*+SUI_9z|6 zpi5u#_`T`je2W!hh5WE&;DZG1RoiupuS;i+i0XVI9vL-m?iyeOM>uo$4BOC*YGUtMaRn(|PB1Z~a zTQt?Gnbj&HI!Za%R@YxcZ5$Hj<4$<$5F$&j49;0caNMvxl#*M2@j}SPewN!!qmC|R zalwE=M3D%_Q*^;m64@I|@{hCV68&ikhEfiPr-ZdhBl$w4NBkZ}5+Yv>sBnuNX!>4%km}pN^RW(DzopUvRiE@V-)g`SMSAPXmVyT-Eh@hlzh0|cZ!)M@e zmSeT^f6;CKB=@n-x^aw>;m;iO*opQ`15HTayppLg;vUp9t(9q`_Z*%0HEO)=J6hhZ zF$Ic(M_1qzS3}_i9YyZI+X*Xb(n({qK#gNEdoT9O#j>o$Tg6eZ~ib81r1>hS4T*^yB$8ZYr82Qeh)bN@m!O3Rd}s zQ|5fYsAvD9l@O^CAuJ;`WWwIS^e)EK^A3NAQH3KO%mF}AWf)2T^lIQr+0 z4eHc5GREu2>z3iiJ}lepEb}{z#Gus(GQTFc)I_l(gE1ci*DV2V4Y1mQFi9FodkH67gRd z0OZN(kfQi|^uZ39=Cl_B$P^QUuhBn?E8L`?FdyQV=G3GYa#%MG_5!Z%ra^k7CyQpd zL^nIizIJ?gW|IA+oI7hs=C8*=N!a{}kxiZmn)Qxzs}@m$WbMhzZ2BW($0!2t^?bVQ z+~ll;Xx&8nNWYtvA-b#;vk(dxsS{V!?2LQ>gpqziNuD~Oc{i2n#V_}Oax={MIE`rlsL@sXd97h zndX8v*m0k=3Q~PMyzK3s#FvC$Jq6U*wl*#+3}*B^`aJYl>bA;wsEV`4P`G4TdJrS9 z=<>+hJBx+kfBpnQ;6zZ%o|8vZ*#Vg>?vmX^jm6=ONr#;by|UkiZ=JR7|26TMi}Mq@ zF)==MPzMHXcCzt6h#<wk#Y`f zeEawNE%+y+ZiSq*tZ|0(=5@pZn9%68d#L55uM#k|Wc}wad>?AxMO0zjw_4TtA&+J%!-7L2(XlguU@GdQ}$npZ#DxzAJQd&&1(^CDj9VIw)7agZ+Psf)jutKNGAG=^z@bN z{*&lOq_)WB6TSa{g0MX=5a>y}Bp2Z4iv4oYYcxA0>g2?*b%6Ts{pGxE8wYya07z$vFLt0Tu1D94PPCr2RZdPTbRi}bTb=dKkzL01iY!?(Hj zRdE|r{*gJY-gu{1DkR_IsoWMCy4R^*W_$|y&Uv8MtV{#X*JFX)0g)|=@D#wiMUZZ$trO{s;~eUKBN%aM`*91W z;J4eKE~>28#NbPq$VxzM`d>T1@cM7Y7sfh2%icxI z`7O;U>woYc0X&nl2i8yj&_6yeYA!u7xNe+N749#keT`i`A&Jy-XW9*g#$X zpXwscFN{b;6bOEd=Tp1Na=)BA_W7cyBMjiGII*ckv)IZ$c$)88em`E&&u_b;@W*0Q zZM$0|1&33-@FFS=sD0Ot6ink+f?n`Y9<3v#iUo;(m7niNNDMd97S)eB$R)z+=?Upd zVexT^J^%1A_h$;E+s6FJPdC?+xfFo2;LlkZ?3UijrF`{^^`tson#rScGyM=N-|wc= zu;#wMsoHb?hNxX|x$g6I5^awXM((}7Of3R;H@(i7+A7C+L6~d8Z+d;Qq!#A>ZwL_< zI=ND{wsOc^Ht%3X(7GBC_>Xg15!|MexrP@SMrvkrO+GB^(n-o>d!+O=J}a;)Fi)-5 zk{gh44^rrr-5whiX~t`_QB7rhkr{+BC>tE|rar?wgeOR7a@Q%J$lUmFwvlhOSyEkt}3Gu}+SU@12TRYO4&`)-gFOoJo_?)#X zkNzTfVtW!f2as>#O#WC#hz}HpXMSxt;(b#aF&@y<^cQQ!s-$dp=648a)z-Y$G}^{K z2v~DSIcF9^89$(8CeA#%l6tCT;fEYHk&KUA%$kUfp9oiI&l-#lA9QU)0jX}|uNp8+ zu2GnWzXlgQz1LP`nuQ(Y2F#;_?zVgf?Z7y_Df5ErqY4+QWpB2)Ccv4e<+~r9$9tR* zOm8NuY5ZrI+Dcl}!Q+I9m8BuTl>70eQt>bfRz@{b-0$Ct3d^BwGh{!4{geT(uE|K8 z>k!Kr>JQyuuGFsQTl@DdSNb_w#kIB}jL$|d;W<(y5xB$P~)U|JhBQ_hXPrCqv8eQbpOYF&9@cU2-LD4-RY&@19dKY^P z0&!OpEdx41_=_h_828s4*aY){C>CT2!@e=k>kMR7z#<1e;UHkw^OGlu)PIF+7$=Db z0a-l}DC37>=i8d)OD^?uv{f7~bWyD=F2!eiSUWK2&s1F;+7AYM5i z4$x)|#EG6OXPwf~)H%DL9*JZ&V+=tP1IU&klzFEq*#$6K!90vbnV~vO!1PQ1axJ$M zk3x9J6dOyzCAjQ3k>CGtSlEd^v&vApCUZK798X$S=hf8Pq?jxj8k~=DdANBSv9mWN zI^uHfw9D_M%b&3azssM|>6O9H+koptlKrNaqn%hXznhzS`tE?cPmZwv!aI7u%OeXZ z&{Ue>eNXDLU}U@jqx`t$_Bv;k$JN1S8fD(Xd|EUVrL46$#10F}{+^ zm2wNEA#j*D5DNy`OM^0{;4^0aW@l1bj?@qzLiS+<5T9Dpv4ngnvgR|>Szh=Pz{tt? zkQglViU;w1B&n1N&PL0+=CDuaR)_5Iktc#JX?O`@bS?#7QL?6WLp}Hrcperm#nK_Giw~VI^dAgi6JlqPWw+-fE(;-Ns>4SdH;6Di zgm4uglZR2Y(YMrUG9HrJxI{Fa-93hnaVh>Z1reD-_E%FlQ={ddLc5F!3Xr!1&1ZEB z?mifeO~qr6NfA0Ao|MjgzrhkpO*eg!Xi<38~GJT_RJSkzhxM}+)} z^dd_Xp zNAr;;HpLuai@|pf-LZi$1Jp15$w5!3Z(ihk0YW(`RSqiKq$q&A$*7?`va`qdnp)B)`(2~S!C(dvy*S_J4S4^mnd+UAK<3d3lk zP^BKwHfyxfnufvxf0mMfrQTveaqLpA2BX5N?E^g?F?&B|@5k)@JRw<0dp}Q;JdcOW z4WGH;*G4v(8-A%<5p%;gsTgy^XKwiQV+nJ^F9Dpn;n%Wi%ng4L3&z~=nH#7bAB?Wz%C>f1VtJsM~_IzBV4UlqB%o zm71`D_LhC{v9UX|@GSX{I(y3f@m#G^)7&Q#W zQbW{W>=c?df7KJw_eMf=JB(gK*lQxZjFEg7GhP?aduAupy8+c)X1q^m?N($b>q@kZz zxEVn$kZR~@Bd8>^ikpGEQ>mo#s*0cx0l+MYd%Pqef23>tEF_HY9mWc(d{^<2q&Z@I ztQt-i>n#ySZ6**s5JmH6n*$tbG{-CHeEE4_BWA#77#?atMNuT`WU(oTCkPXtL-4vgW*&$9&1wDV*H6 z)6+R8e`FPT5_wFO$6Fpxwgn}xnq35})2)3pcb;6~fUrsh1w7tJ>Ev~|3$8O3?mF~! z29U4Ydy|4{8$7R=+J&^|cA)Lr6H1p)<76pItssms!V|@@P>YaNh~z;)dE&hzE?CM* zA#M?eR6m6y;i^N`{RMOUyt(oupHrg-#RM>Rf9p`Qc9@B1wTWo)ZeQ~55L6Bp2`VFv z7S()#SbmYMkuy?ZSWJW~t-?gOiXt30iw2sKUhZn3W+~6_;-Eyjw?S&jl&w zHFk7N-eXn)OztCPmO<|8Qi}aFRzU3YgJA`vzQ)Z*`9U$6ue1u2`AnJ5z#ZVYCi0Z1 zfA5Za7o#GQ2234Zf^?VV6sTrNZM?k3Sx;=0nAQB)$f7F_XWQ$yVtTc}D})x(9AZC~cgn*|4&#$ry&k4TE^G|SeHBM+fWzce{^?7g}Tx7!RXEBMwOnygU4XFs1Un-QL==)E5{xR zk^UMfSu}FQmB40#!-XX{j1Ya5Dz>WH*}T$6R4oQu=b z;&A6j{=&@)8kbdsw8-qAXw`axCSo23Z~jn8Wboa*wMP6Pd%b4fMF~k`e>E~5gJA5g zDs~s&2fBWGNYzci+p%xEe4SHH?UHGRDamCu;;JE1P$s2{~H%@i5L-9cSxy zBZ+55kmX@)o?R~|Ut9E4e^fsn#?=^CV_dBfT&-LRqb6i(WrxFfT3x3#@7z+$!_>U{ zUcu8^9g|VRh!|gEe2ww7M)0+=3Gtecv6UZBb8xmQtd%RqY6sd#^P66=a|Av54Hc7EBONp}%RslKmcSOXhJzmhv)>g-{= z)_YIKgpw{0vt@l6f0l0z`>epnvezVL#gVj<(nP((5K^>`W1^0mhPZpQF`i6G&w!@z5|$hc+dOI#8EF4up5io!61l zG)HP}_(iE*ggo!4zZFYXaJK}qDNw*ELDi7D<@HSauAoWyQ>v5$(Lzm;M(zYi&gMn6 z5Sf3+Q5Z9 zlz7v&{Lfw{GL$71{--Uod4fO5V2ya^YGjI3u@4RS%fZ9lFWRvk`)hkU^g1o51&2s$ zvrVI1QA&7{Q-%;hmmKV-w+?y4c`^&dqS0%)v_Wyje{|TAQF0EHDLw|-&;plL~U-6eygq@D#UJydXMK^NLB zTy%+l9#Yg9pcyk_hj}P(i!+8zfQ%^+AjUu-4%PL{G)VUX5@Ge%of5C_4{Iq6FE`AqPGb>M#lEn+Oc65Z) zN>0e0Fk(?}CrQtuo^TROH&%rFnbU6&3kLL_?>uxxrAM#ggI95hhR?aFQL-l9da&xI z-GZ#c@C-IVHvNRFnBS!bO`efdMRtN`KUtM1a3C)mF&ikn*6-DZ0B%6N-8f^r4Qy}{ zf6h~8vZq+ojtLs;#ef-_^HzN~5X+1-nO8-ZpJ#eFdZI8e5KX0rdrb@I!rZ}wbEl%h z;b?R)dMY=U8jz1*R2TSibS_mGxbfU=!}{pW$IfLBSP1F_DRe4fz?85-N|Zp9upml! z>6(`dzw4j*SX|PE&*r5WAq%gTY8^%=f96ij>8Yr2leHYmQDZr7#^tyPm&1Q4oG@N+ z>k>1@jCUoc;!@gk5q6aZbM;w;A!8AS9BXj)6t05S3taA~pid2wC-&wzHE_s?aFo8$ z@Q6+gsH0?oP7T}wKTgoU#zNt~89j9Dlo~zdSTlql*DCF`LZ#q0^Ac6DYnEWae@b@I zseuu5-Hur6rX4rd4S(E9{}u+0kaa7wW|g*Bb1&d-pb&V9lCb0fLCONur@AsyR_uc2 zM6LTKI2@@*Mn?;`-Ec~a#Yf5Q$*7J=U{8$ZF+hMv3ovuoL;{;lOe7h`4~iP@D91#) zU#v=KJNAo{l64rx`K1q5B@H`{8riHQXrc))KH&!Fqt!;qilOz5gw*Mxe_n!vsjL>V zR{c;YIrbQe>qP^w%lURs2Y_$ul&KwrIkIU%a^|DA8(3Uwdrnt!?bCv;mso7=nTk~q zX`n#y=&Lqws@hV?<54}9N4fk&wv6Rb&JdFP{R7L+gh!>a7DWDy1d5~O%wlK-5$f9YVdydWGcR<$$|lJdq^)du$4liNFB*zS6+K8@_9<;0W( zB9|Tle++B1Y1)XXS1?C8 z1+TKA#!W-(v`b0DxMUdcx0*<1?l{3|g+vvWMH<}91PSAvkm=~-?u5y4fJhrQL|Dyi zlN%!K1Tf;gN>hx9RZXH9j?IQ@02-2k1Lbm9-nch~_5`3(Qwl7Qz-5IAG0RO8%9T}= zGh9|WL$jJCXw2cdf2=D}Jn}{E8w*9ut5&L21r4k+2pGm`J)0K{r0^hoQ1!h3jt}mg z5&UC_5i5n-M@RK4W~VjxYT*4bGorR(ty`mMsXKaY3G}Wx@uY-@5wB`BgT=eX+CU|F zy!?W~Mf^hBITofmvstepmkb+6up?R{EE&aTmXSgDz3^@ff0LROfE-RAP-={@41g<{ zQ6Tm;P5v}=7>`CgN9-Tz4*HrUCi*q?Rb~b!lx(`fVtS(~6j&%*pxjIY;}L6~h?7p(M|4$4gVn}k_0 z2?tX+tsnzmf7AeHIUx@c2Wq4-&N~_ukvRKMhBo8W-CMGQE9^e)-3nULQr3JZcW$0!M8hT@078JBQ0v_DT80~VamTB1u}LILrr zIB}>sbX$fgxy>_+*kISmxy$nvCrq`nwCZA^mnXTUe^P)lSL^<>$1td5t>~YNra-e( zl3t0Q`0t34lUBJ^@K}Ae7_P-2Xns%?{NmkKUJ!2*MJNyMaCZU^4ZStawG-1iq+bG@ zdX#JygzH4$T>A)l+!;3Zu8(X+o$buh@o=S`9y;O(mPmQ+vDZ6(I2yhvpPZ zS%%3AiK8?s!=yt;Q=C{5Z*uZlUdX}`%e=yIrb`sEiad!_+t{;!()F0>)rj(?X6Bxl zfA4W*6!uzoY!Xposm75pQ2EHWQduYMy=-i zd`}Kol7o5JnS)te()^ptmUX&OBWKyCFCqrdvQMu*34ÍKp0PnW)`iTzcTe~Ec% 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

1jyDHfkGWqNf z^A4dbz1I)gPTwf0se2X(E!=dzUFYcZOH9(-}s4 zcBO;pEFM*cYY&<)NHHMSUp5!x2+r9nGy3yHOv~*({Cw)x4kfkGlV^;nD2|f1plM4Lu?AitfjY%d05Y=vfL4V2CS?sC5eC zETgrhf1Zs>EZNa+rQXw?0Kr<()t_IDi{a(;3vQNEKqC%KfnBRJ2{XD2Sl;KZSIa2O zRCRfcyV{SZIXm+#`_a4%se#K34X_&iqpL)?GC#_>S=^00&mSH4SW*eRbBxHbF9{+z z2y0;+a-pB2aN>Ljrdho$dJ6f3YwhV~Dds@EYvd)xB(na7$(`$-DB` z{;|tNfHK672OO&zRQn>Bn_e#4h;o1*@hK1F*Q~M_Msp+N&Lh~kTTZ-gcw%AORnK|5 z^OsJNSfG5`e}{1?(w7%uL)LxeSJVdi^V8o_ryCe-Tj}^Iit{q?A3utrXeUm;Qe_ui zf8F1mt@q=HD|=6Ud%tYTJWVJ%0@l8;M)36u)%|%5>=$VX?CD~?UuT5!nBi07sd9^6 z+1=h(D?bIVh<*2uD;&cN)MvBR6SxcPpShw>3;q3UpVO)yUOqL>LSUS)Y&(xL+Ezv7 zNv|K+Z+E!1*FQ-|>?2Ise$jPqzkL#Xe_gw#?%Rg)X|EU20Y-iux`@-lLAq<&{Cs^1wi=<%tLpt4K%)Jbq#b5+2VKWOZ) z*!?2peqgmm+UAkgJ?X(qvewybe=L_(+TyYz6F`HgXr!?5lcSq!GdUVF=*>pSrGz*0^UYT0qjtV`~ z#8_)t`$xe**20+#GHle`f~nnR`^GAzE1oSNW%@V((r|w`g~JVB>m&%*wOn zV&)l!U861VM=p%pA&Sc_rrnnUJL zufjM`B_?fAn5h`j4(L{ie;Voa=sZgkz2tV?!>yJ_tb?ekB6EP%Hf+ekXK05J1$LM2 z9ikwrS_CrPLH~^2)tA3cJL$I4IlM6kQ!QiZf4Y*zw}Z^VVtYyF zY_<_@Ga#GeSJ{JQx#cbuzd{N}bQwy=zOBaho9&WNRoux(7hc)sYxEO%8Km?e9!GuV zcYRtQrA!-CT9;IiL}wjq=3i>73hSI@Vz0bHdQ}p!N`0ED3O&7Iii#jMDc$QHLB5DN z8UUyq7~l+D`f<>`f1fEKGn8t4imE)O?2B)_ZsRfTR!b{+qfydT7d!5Em~$pU+1a5a z9?Xr>jE*3yfB*oUOnJmQk32%Gnxl3Z8v-%?8o6sv3uyqo|68Abew{xrB-3b;fi`+6 z&WpU$PkXQwUW5fkfoqnw z;@B|{zfYbxN#9E=>={4D;H|fO?8NbvR!%G(UH&a^>9ZifG%vyoP`NcD zA7mR0YTmQ9c=G!<Ww{SJ1f*Y<`*G0D4&i<@yVoNjbL!Ci!fMlxc({S4$hn@+YV zxTtpxUw9YCf4vT-U%z_pOYKXrng(InzSsvYi3c&>F7@KY8_zs*P+20PaHBP$w#;iD zUc>pSbe~&4Owx*S4$=%ScP~ru*)eY(##d!d#*QyvyM(#%6`Pn2hg3J_dq%yzj0MKO z5rGK8BcneqrZx$0}U{tmd2gu_ss7S%nVSWi2FOAb2&%nrZ6Z6Sg#Q~gU zr8>MM+=vpbCIwKn!d(^VMT~69UkFQsB%IQNxNts9u`dr>?gQtYCzdmZlQhJe%y_wsf8V)&<#JPYd8<9YCA7(O>_!(^Yp2 zEK?%lTdPRoQ4Cp^msB8pz;?}%tL7Vh)jrCvB zyH1@X?)~f(>7{fl%Fc$>{V-O7U#Eq4kd-{hZnG>|@C|E(ln$t$qo%0RhsJHBX-*_s zf3likt0gREUJ1kINV63u{a%>$yEH~Rq*``FV&}%SGZ!yiy!@YL+Jtvool!U`+owy& z@=7{N5+N#wi`NZ+h_5aV}vv}mlGu{!B@q7sYD*$|YJ;xOQq@D3LVwmpYTakA?e@!yq z+n5&KXbLl5J_?g0%IL<$aawp`?rpH;LEBsD9PK=Zkjphg^K8poSz1~0uHdb=nRgje zL12bSgc<*1!WIy;Xz-3KK65}>HjqDKpzP*SN*18oYSeiFcX6U@RcP& z1~s_>FsDVFh zvsG|Ajr-nG5CqZA4q9pO*Xc&18?k+E49L|g(WDJ64NN>}iefuEC9sz8f970;S+GgV zoPcYvJy{Y<2y%?{xCaj>)+pAz=B)p%inb>uk6*5Y+P52Cg4`YO~)XO-lc zrM%TD;6;%0$*{GGTe66qINW(4;7336Lx&n;x*$qV16>CeT4N=#RSfZdP~rG|p51aq zH1Oh_7`h)t;y%%crR3Aee%5)~2s8K8Pm8O8Fn)?`34>eBG2scBi(R5F6dZjogN4jANGuNIfM zR!0D^-x%b}8cCM|g_uUsmg*OwR(G(Z)^WR)b;IT|@c zQz|q#tv_}R8l1)!b<5h+hG|{X!fu4cgr1{(-6AyOzAhJqq*{`ciLvQXt8tS=7f9|H z#(cJ*&nYl%wB%BVO(o5uoh@{Zw-%f9B?QuoVKIbN&SrCYfqsS?d2`Hgxsl$A#s)Uj zB#;d_^EDbie?K-}glMP?ik+Q%yRzhbl1u=!6=R3_Z8La@MpOLMabaT22Gp3&)vgEp z?c_mG$9FCl!dI)E^2yn$|2cebJIbO}87A*sCa-IuK;j z?J&A-)6Ag1%b|z!Sg8jY1;;_m`HIAb598DiX{-k0e{z&gAy;o0W@n0K+VYbiZHL&X zX@^2^HWk8vdN~QRut>Ak&Q2NxV0t-wBXNL8(y4GbTAmlWjvQ zmUE#ca;?fi3S;TK<^{-0#KA1m(&#@BD{44b!Owo%w&(8VQ<=eOaM83Ww5XjigYHWz=bRN7#M?K&g!z3(94xdg~DHu ze}W&E`n`qLcwv(qI2SMmW4sV7Yi-CUBvWD^b$&+^Scsrsn>OqheP+$oW?{xLHk2ZO ze*o}-VO_1J@RyyHOm$O0xkOOmaN&;XPeWbcX0()Kv}y0)+Akfkfcy1UR-GbpX%$ll_O~Jc^<}5 z6WAA5^`IL0`SbWQqn`%?VBD5~S1im0QRq5o@PdRc0A$~%@Vhx)SZ;M0|66Iq+`eo} zg6Ra`kR?ZB95kHtr#Sp^bCE4sf7H&?wEYTjX%$j?R27J3r;+^8njNoWTaC1Z<@F$I zRuiE)UA^NJ0U2?fpn`abo6>Y)ASp3#Y2!gAOTHmywek(H(=r!$!HSRrI`-N6YP1l< zN8(+3EsWvvH?WWFt>~wPLjqUW*+(@-K8%B`ToTCD0bdySQ}{oDPMe+@e;+!OoXS^Q zX^^c=*WqQn2AX?%Dm*=fW_8o&!_x`<2!aq9egX4AryPNN*f*HV#~h`|vo<7;M{yE@ z+Pm#sIYL_@X^}111c{okwy?8(k&@I`ySMB#l*fFPW*zb%vp{FaN>i7SW3|9`;Zznu zFB;ui$RQg!Fsl=~0?ck{f6+Jfz9_gy`~AEH3Mw^ZNbqNvV6h^has~XRUkyK<=J*S~usBu9A@JW+J+8RKPteOp3|@RY z8b^5!`SB{l!8Bn{@Ppv8CxQ%xidYn)pHyTcX6b}yl5WCJ_}c*0e>1p8q6zZ#2$S3J zlfc}KIG7#-)5D)g8TVVXfXRZ!+Lyy9PN(aT4Ib$CHax)SSP<{F*N-%Cj4bf? z_?QNbFE<+t1woF_5a=zZeq>)I9qCPy{mN}yS4(J#y zNZSk+JMeWUSZs#H&PK8m-^JuDwZcYI5Gcv-uD4!$ZTVoM<-eq5`7*XHmZaRev%QX) zZt*Gw^;_Ej{JO-0^Y#w^LU!IkKHfnF25jI7n0ANwbq6?ge}}kqhx6x-_?u=s#Eml$bcTAjIBku8)dKV6o5}U#?-5_6XD@T zu$Uz9ePtfve_t%6iBM0`ob0E5=uiEGc2I;>_^6ovGEB|`d3){>EDHR_b|VOK(rt1O zYA>VHII}n{DA(+^V6;qNd~Ew^r-w z#SFU`((b^x-hxs5k{^~WTL?gIcBeAIQF%8}8%u=%BS0n%Zq>DpBb1>$iW{uJ^*IWR z;cEpgf08(&Aq%)q$*Vs9$siRaq)R}bjX9vD!O#S=kB(U&R6>9enlK29t8-!y27Tzu zD}Ga=f3mZqKs+!Nza@APTO+tZ)u&}|s$6XEdvo9@rdoaAWV=For!GW%df3p;^+>8+9CIKFXefpczU(}NtL-r?Qf9XX$ zf11S{Czl>X4) zE$SCkY8zWH)w6H<8_^#Ew#Dk*VpVJnMQYp|vhRdFr|j>DzOdS@m^c}Y<@m*0xJ{k2 zole=`tg${@8fdOV4gHy91NSqst;VF}vAz?sZt=^ny}Gc70}Vv)4_L0PzSa~$0%F82Lu(n7GjYe|Ns zppuAV(pXv+<=Qe+ZGD)XJ9MGH5V@BKf1y)j@)^pweWqEU39xkgf(FI;u!#;@S(+BR zCI)8{lth*-(MHsdi*rCuTJ+)mf6Qs4=!NOsyW3)uk({gjqNA2-b&V2Q=2it41)yR5 zEbY8HRnX3Rk0MpZKGvLHi$)=|c)Z!oe3<^a#qRp5bR=NYP#%mslXTJ~%P;Na^7mrj z5j5Cs^?p4eX2@0W8LrgFvklCwGPGf0kN4w-&Qj zrDm)0j-Eh`WB}O)=Q557v{)Vp%)B&#HjXrmmbBQWt%fV)T4xSr?4{nW)k@xAy34Gj zM%$(}ZJW+&TYI@|-EPa*x@!5*Aq^PAXg?4YdRaP!!PBwV5D1p*$eGlUGnq}!WVeb^ zQbWt+30uBv4uNI9_3jVNe<9%a^_1n-YQHildV0J2FerMpgQCA4^lbF+)iky@XJdy8 zYI9exxpKolt_UBCpP)+?qahz8&k~y1g=`t0%2&tb1`{q}K#Yu`VeREr#wfU%l<{__ z>i{Av8yVJ&Hf0cnz5-whYl5kxMRVFO*Vg?4Bw zgy!oWTnh6mJ|e4`K8A3e(qT0zTotjN6>nOlD+=4a8*AHkYdNCDc!48b!eky+AY-W! zDq27-?0nUlYNb@wQAt|zfstCqo>rzEZ7enXBB*+V5t%x9nqla$Ofr!0 z16Cb?3+4b^mP1eAe<+C1?gzTatoGPl|7w_;ZT`@l`o?8q1RqvH7~DA17(y|Y z-KMrV?hquw9ck&L6B_wcCYr(uooB=CgXC1YngCfu6(D7B_h1OGhNq^hLqV~A5Uvf$ zhoT<@y`3Ezb3OKM5X8FN@h5?X+*)tlhf$)i>qP$cN1QfHf8@m-MiwsgnxjBZLFl7$ z(3U@UcD7qx$Zk+x$-C`WKn0^x{;_VEh;A9NZW*YOEz`JxYmJo+T^KXB<8+#%wjKyy zK2#7*+}H-+m;&NNeXO2bzu4{xNZV0-S0pR$e@fLgJBXztD)K&zv{Mz_s;&)JrUjl3 zg?CZrZNZnvf51`*70HDlok1iQazYtbLCbgKryf+^<6uLH4g+#kYi={ffh)Fzb=nB` zS4q#VCDWR_V0(ETgd-46X-TZKq?}`Nv!~dkv#LxGxvlqv^rQpKFt8gaiyNS6QnlS2 zU5A2vH&Z8IzsfVkjJ{^;jtbvN8ZNbF01!FrJVP8Le_Sn|52Dqg-If!Vtq<058fU~- z>_@Ay^hMLz`*g++eRKK(frxVJeA`aX4U)Ut6wq<52x8lq!5wOzt7Y#jl&v(bs(uM< zNjk=8JW-#$j`U~c90l7w%!5dKWEl#v9FF8qrKBvwa|`b}NESaOe(Fvv9UZdz+9DL= zjIZJ0e?muVuZA#tWz5edM&hGoldbs8$_QHRG{@q=D6LY|7|k7XY)!ShZl>1M(3(1> zeQ*T0Nv54#ORWd!1{I|UadhJ)3w{{D*bjhpo4Gi3Rs%}Yx9)AWpz{0SndSdYn$u- ze^yW(vuk(O{g;BR4s+@E_k)msE7$^*{Og)3b*tr{5AG~978?t<{Yyc4I^jCeOQn#L zK%lD+gCRR9(Y)01H+=evuEAJ``k;`n6YaP-BL!uqAZ~LTP^>5OS z)s~&E$y2emc6hsw~w;*9nGuyPyQYAKXvS)IyiKQyBVX=-Q>22FCe` zW+4&8g9NYbK*I6W`hS5k!LreK0mhMot|NtF~UN1cZcihh2Wh`*ZX5XGu8^2MQZ*bEmr+9 zOh7Q@2j7@$Eju9KvL@UF84=)>&ir@;$Hm4&EJI&J&T!|^k#%OHf2wYPPI&=iGNX@| zvR_9pS@@+gu{@Wj9QiVqHu}*X_EL|9V9g?$bvB)j3*ml#b0g@SJkEdLS`L;wD;yEP znze38KR)>CFfJktipCx8tBd1IJ3+7ZLS!#MlrVg^VR~46ZE=zLnSlOQnp&>mmB-xP zLh~4nA{;$pZt~(Je}RcO@o)_s_Mj==;l;!9fC<+OqV@7vXceaotqIYorPG35OWo-C zW%;z+6~7#f1EN-m0f~<6+6gG-a7D2u$+&KuQdV0f+9-LL7V+3j3ll5^%ceowavWuh zhf%^nqg}e*iSAICvJ}N>csgvNgF2-9NuV=wb1Ii+Wa);*e_mxJhl{GAsS?L{8nSQI zww!|ti2AA_Dc>g3OzNJtM9q?*tS10+y_+bKnix>QRRbAjxcUUCqKY$UCS( z+Q)4#OnOs{Q+Ea+gqzU?Rk~ZYw=9~X%9_UR3#mcyhmF!q9iDb&zJNiC#-6lPz*om> z;rh-_6TgsM@f+DSX2~&6jw!i1R$%OwD+{Oi;TTRUe{v)VrnolS@^AZ_FxrM| z+h`Z+e=#$V)jY&SR%x^tLn7`vQN#$_z`L_Lv>NdpDqV3)s$Uzw5rDEf3U6`TMl&vQ(UKQ>SR-sOTOyR(%%S# zG17vfdfzjaeHFa*WnzVrzMx50qmWo{y5)?%ywug-T?dggUoz?UJJ0cQe;L<>({VnG z2ZfC1rCb}t4&X^EOy#U#=_6Ka)@MEosICdQ1LlA@aiYGORb)~+^hTI-Pp7a5I7 zf6k_nbq@EuuG-0g;`?u`8y?7CWPnC&jK?3;vW(X6QrX4TX740nT;L;Jm{tDHI}cH zMDq1(h{ly!Bnhn~!@vL{;gE}X7-|OBcctsufeJJfBW!;X`e%WADc1rQw@5!7x~#?iAN#a`6u3tHG_fT_6AQ=m9kQ3m5sAp`eDnQb~)O zQW{aoD}iid_Gkqda6V`lS!J-aJO|}a1h~X7yM+jD8IAiarlnD|q*Wljf1pIJOVORk z5&|QEJqpg#jb3u*$hbvaH<|#zo~WEk7W4 zBf3+p7OO32J5%(WAZa*Ny)q34))I3OtN>cX9V%T7QRA(O2nW?%=zz&RR0SpZ5XTP3 z)BV}PvOJ~l$S5#swVY&?e_<`5HVn(z#Ir3fqC}&(aCSO(@4}4Th#i3-d`dzBe-o{` z3fX}9x&qDJmd2eT)rpO44Vi%}D>7SaOF98$5SEfe{NRkWB0NK5bIpZf&j$)~%M*Yq znDbYzuPTmXiXXe|9W9m)!^JP0*lfl9V(3~8Vyj9TI$^|{V=Xq6e~hq*gqM^T$}K}_ zf1QK(yiF%n?@z$5hSFiL7fp(D@n&3H)5kQC(9c%;sh}kG3U_2if}TzL5j!zM$IqJC z^T$peI+UF{{w&3YGW&!_iehLs-7G&c=wuLE4I^v7fJ%Y}{AuXP7cQQ^bS`Mnm+|Vx z`D-r*4g71oIDhWqe~p{xE?&QJ=JMI|091W6vc7QT%JmyTgT9PcSFfGFex3k`Uq%KP z$QSh88g<`XkP44lfgEU7TZOL}XEj?D$S8VuEvech%*GaD@n(zS5Y4CgYE_#RA;Ws z0G8IUmR58s?vty^!4Edfd01?7fVuh@g)WqMZskCb>C%Cno$5A%AafO_F+eA0{)?JT zW5ju=Q_Eun|I1GoJ~0mgUO>Qy4lM^D%mu8no+>;c5bW$iAlpwJWG3UXx_GE&3}+)A zn%h(Zxc7C?|dimabkNJ1-^QvOAm1#W}`*(sRqdqmd8zxjH zL8_d#Mq4VZJW$^9q}7TpE9$^6hLWbxu2x)~Yp{!=TbHOF*9^z8Skqg)?gokXBTPq8 z6>51{NvXD}qbn;w1t@Y?f+E2@J*?HB_1J1j3bC?^e_HmQtyEbO*&0e#Yl-6XmbLP& z7+E```@35AdLgi?b$E1j4p%F_%2&3l)zUQG))ZwTtXdA`MolpsR;&GJ5Kfb#%T}z7 z=*}eS;q?kE2!a>#dk9keNzU2c05@7Nm@l<W8f!NTO;#`yl|*+H4e z*U2~CfA5(S2s#h(^%bsDD`Q)yl(myImNfh6p6n<*W=H)5lCE3mtWjeXDXk8x+cpJsOs^@ecI|s;T&f?An0*x7(e{&Fd%v(9;+-hals**h)uaa)e1er8? z$`H7WgDEJl*kGyTwL6eDxQkU|x5Z5WzJ~+S;Jtxx#}W+Zd$0h?F(#PDcl1C8#I*z( zn`~f?5^mUCqdL}CnepAtq`5e-YV_g0c(Z~O=gr*7oBQQ4Cw@T9d_LA1`@&+9*RfV* ze?2uHXPMnVhDj#D^+5bAP4FBVky+T~rU^l_tuM=P($1cY)r}jkQ092Z$2%mRt3&j% zE+WmERA)nR2_S9VSHmURYM=^+mTxu1nX*4yv6$Tusb?50`|?=M{Y*3Sko?HA@w_}6 zbDoXsc-Fb}o{x7KXAz`}{BS2}k|Y>?gXEH`tARWp2PQ&5Hc=DD6)Z5UA`iD4H10e+$pl z;7@ktqF=RGplew3H~L20C%gak_3-Z9?fEW${Vlp0_2lv6uKQn?jvik*ZruNR?D)y$ z&+mWzEIx~i-tS;%^2=ZI?&9KRTnwih=zO=BMPV{xz5NX2Ebnr?hA+H}<6Z~TuU|d) zrS>IueQWz-AGjojRaMrdt6ZPqe-}&>6ff}Z9cD~+xa$qVB#(BVi3eVj4@aK2ALc{v zK;RvQ6$_2s{$X}qwQ%y4-oEEq5M5E?Ge^|QQ^1XvS zHu_k-C`-d}JfaBQ=cbvsr2FX765h#8WjYK9zlWUmK-%df8nb)G1w7mr??*Q%YqJ6p z@Ag*EiUFZZ0QyGCWdXyE;l!mMtD6N1X|~EAeE$UD0driT8`#-(P7B@;I;Pzl;+ZQS zO-f^E+_ncpa5E}!qQH7fe=INqKkJATx;QwSq&c34CN!}BEL0X3n=>rw;&M($LKtXw zu=$_EHRii=@SeE%yo0FmNW$nju-w{htp8`$nlnk#Jj^zibeaM%7o}D?hLZd-^i6jd z_xlJ$AX(G>409mj!KQ-_kmVq!K#MMZ$0ji19`;?t!yDsSw;<*of02YU4Ggkg688WJ zh8E<=ap}^V=6FIBDw9N@>L{~zx%_R(x1XSM*sj7eHsZL5jg9g=Xx0~_Xp++nXJVXs z=o0U}J{?WS6q3?Q>T6!{5bw7QI5&qykpUec>9FiUKnDcGHhFSfFTx@cji|h6-rM!P z!$1)Pz&g;QJtLN1e`7VM5_1U>5a}rF5PY9wiWChZ-d|^t*0~3R0`bg6L%6c+L&ss~ zG75n@1w#pP&;X_UOE7X)m_gj&Yi;~buxbvf!^3~xkV zf*uE1jw6fYZsQh^>rMmRTR8(0%!5tjF_26{V6g~&-@N8cf8XQxd$hdZd0sUY?=YB6 z{<>43qRRL}mhpK34;guqgxfD-6fvksz{Jkrl5^DFfcD-x-12!5QckaoNgL(Um3)feda^}o;Jf3tYxz`P2ecf_-6fcTb64YjOnqJ zrNxz{W6!QUdlE}_B(r&)9*yQ+n&5c+56{8p*=KRw4S-?Wd9j_q(2k1`0+AgySW zWm@6z#PZ4IlUNv?AU5gfR$IJ`j`mmjD-{^GGzhG#e`WPs5oYRo8!0U7&64R8m+Xz6 zyv@ByrR;Oh%~|d8C#W``yW05xZuTAIvvl2H(1(u=MCZ=}{SYJ!kt9_pI%7XepK30h50BHQnv1c`Y~I|Q8kDs6RWT2} rZ}pyd6lC6VapfFECr@59d-9?>MUKIAYq#N#0b2 (Self) -> (ApplyHeaderFooterContentInfo) -> Element", + "key.typename" : " (Self) -> (ApplyHeaderFooterContentInfo) -> any Element", "key.typeusr" : "$s4with11BlueprintUI7Element_p08ListableC028ApplyHeaderFooterContentInfoV_tcD", "key.usr" : "s:11BlueprintUI7ElementP0A7UIListsE18adaptedEnvironment33_02A79BC97C366F3BDEC29D56D447731DLL4withAaB_p08ListableB028ApplyHeaderFooterContentInfoV_tF" } ], - "key.typename" : "Element.Protocol", + "key.typename" : "Element.Type", "key.typeusr" : "$s11BlueprintUI7Element_pmD", "key.usr" : "s:11BlueprintUI7ElementP" } @@ -1103,7 +1103,7 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (ApplyItemContentInfo) -> Element", + "key.typename" : " (Self) -> (ApplyItemContentInfo) -> any Element", "key.typeusr" : "$s4with11BlueprintUI7Element_p08ListableC020ApplyItemContentInfoV_tcD", "key.usr" : "s:16BlueprintUILists0A11ItemContentP7element4with0A2UI7Element_p08ListableG005ApplycD4InfoV_tF" }, @@ -1152,7 +1152,7 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (ApplyItemContentInfo) -> Element?", + "key.typename" : " (Self) -> (ApplyItemContentInfo) -> (any Element)?", "key.typeusr" : "$s4with11BlueprintUI7Element_pSg08ListableC020ApplyItemContentInfoV_tcD", "key.usr" : "s:16BlueprintUILists0A11ItemContentP17backgroundElement4with0A2UI0F0_pSg08ListableH005ApplycD4InfoV_tF" }, @@ -1201,7 +1201,7 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (ApplyItemContentInfo) -> Element?", + "key.typename" : " (Self) -> (ApplyItemContentInfo) -> (any Element)?", "key.typeusr" : "$s4with11BlueprintUI7Element_pSg08ListableC020ApplyItemContentInfoV_tcD", "key.usr" : "s:16BlueprintUILists0A11ItemContentP25selectedBackgroundElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF" }, @@ -1250,7 +1250,7 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (ApplyItemContentInfo) -> Element?", + "key.typename" : " (Self) -> (ApplyItemContentInfo) -> (any Element)?", "key.typeusr" : "$s4with11BlueprintUI7Element_pSg08ListableC020ApplyItemContentInfoV_tcD", "key.usr" : "s:16BlueprintUILists0A11ItemContentP24overlayDecorationElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF" }, @@ -1299,12 +1299,12 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (ApplyItemContentInfo) -> Element?", + "key.typename" : " (Self) -> (ApplyItemContentInfo) -> (any Element)?", "key.typeusr" : "$s4with11BlueprintUI7Element_pSg08ListableC020ApplyItemContentInfoV_tcD", "key.usr" : "s:16BlueprintUILists0A11ItemContentP25underlayDecorationElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF" } ], - "key.typename" : "BlueprintItemContent.Protocol", + "key.typename" : "BlueprintItemContent.Type", "key.typeusr" : "$s16BlueprintUILists0A11ItemContent_pmD", "key.usr" : "s:16BlueprintUILists0A11ItemContentP" }, @@ -1590,7 +1590,7 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (ApplyItemContentInfo) -> Element?", + "key.typename" : " (Self) -> (ApplyItemContentInfo) -> (any Element)?", "key.typeusr" : "$s4with11BlueprintUI7Element_pSg08ListableC020ApplyItemContentInfoV_tcD", "key.usr" : "s:16BlueprintUILists0A11ItemContentPAAE17backgroundElement4with0A2UI0F0_pSg08ListableH005ApplycD4InfoV_tF" }, @@ -1633,7 +1633,7 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (ApplyItemContentInfo) -> Element?", + "key.typename" : " (Self) -> (ApplyItemContentInfo) -> (any Element)?", "key.typeusr" : "$s4with11BlueprintUI7Element_pSg08ListableC020ApplyItemContentInfoV_tcD", "key.usr" : "s:16BlueprintUILists0A11ItemContentPAAE25selectedBackgroundElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF" }, @@ -1676,7 +1676,7 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (ApplyItemContentInfo) -> Element?", + "key.typename" : " (Self) -> (ApplyItemContentInfo) -> (any Element)?", "key.typeusr" : "$s4with11BlueprintUI7Element_pSg08ListableC020ApplyItemContentInfoV_tcD", "key.usr" : "s:16BlueprintUILists0A11ItemContentPAAE24overlayDecorationElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF" }, @@ -1719,12 +1719,12 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (ApplyItemContentInfo) -> Element?", + "key.typename" : " (Self) -> (ApplyItemContentInfo) -> (any Element)?", "key.typeusr" : "$s4with11BlueprintUI7Element_pSg08ListableC020ApplyItemContentInfoV_tcD", "key.usr" : "s:16BlueprintUILists0A11ItemContentPAAE25underlayDecorationElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF" } ], - "key.typename" : "BlueprintItemContent.Protocol", + "key.typename" : "BlueprintItemContent.Type", "key.typeusr" : "$s16BlueprintUILists0A11ItemContent_pmD", "key.usr" : "s:16BlueprintUILists0A11ItemContentP" }, @@ -2143,7 +2143,7 @@ "key.usr" : "s:16BlueprintUILists0A11ItemContentPAAE03newA4View33_00A2BB1FCE0BEE1B772989891DE46E9ALL4with0A2UI0aF0CSo6CGRectV_tFZ" } ], - "key.typename" : "BlueprintItemContent.Protocol", + "key.typename" : "BlueprintItemContent.Type", "key.typeusr" : "$s16BlueprintUILists0A11ItemContent_pmD", "key.usr" : "s:16BlueprintUILists0A11ItemContentP" }, @@ -2232,12 +2232,12 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (ApplyItemContentInfo) -> Element", + "key.typename" : " (Self) -> (ApplyItemContentInfo) -> any Element", "key.typeusr" : "$s4with11BlueprintUI7Element_p08ListableC020ApplyItemContentInfoV_tcD", "key.usr" : "s:11BlueprintUI7ElementP0A7UIListsE18adaptedEnvironment33_00A2BB1FCE0BEE1B772989891DE46E9ALL4withAaB_p08ListableB020ApplyItemContentInfoV_tF" } ], - "key.typename" : "Element.Protocol", + "key.typename" : "Element.Type", "key.typeusr" : "$s11BlueprintUI7Element_pmD", "key.usr" : "s:11BlueprintUI7ElementP" } @@ -2353,7 +2353,7 @@ "key.usr" : "s:16BlueprintUILists19ElementHeaderFooter_12isEquivalent7element10background17pressedBackground9configure10ListableUI0dE0VyAA0cdE7ContentVyxGGx_Sbx_xtc0aN00C0_pxcAoP_pSgxcAQxcyANzXEtlF11RepresentedL_xmfp" } ], - "key.typename" : " (Represented, isEquivalent: @escaping (Represented, Represented) -> Bool, element: @escaping (Represented) -> Element, background: @escaping (Represented) -> Element?, pressedBackground: @escaping (Represented) -> Element?, configure: (inout HeaderFooter>) -> ()) -> HeaderFooter>", + "key.typename" : " (Represented, isEquivalent: @escaping (Represented, Represented) -> Bool, element: @escaping (Represented) -> any Element, background: @escaping (Represented) -> (any Element)?, pressedBackground: @escaping (Represented) -> (any Element)?, configure: (inout HeaderFooter>) -> ()) -> HeaderFooter>", "key.typeusr" : "$s_12isEquivalent7element10background17pressedBackground9configure10ListableUI12HeaderFooterVy16BlueprintUILists07ElementjK7ContentVyxGGx_Sbx_xtc0lI00N0_pxcAnO_pSgxcAPxcyAMzXEtcluD", "key.usr" : "s:16BlueprintUILists19ElementHeaderFooter_12isEquivalent7element10background17pressedBackground9configure10ListableUI0dE0VyAA0cdE7ContentVyxGGx_Sbx_xtc0aN00C0_pxcAoP_pSgxcAQxcyANzXEtlF" }, @@ -2450,7 +2450,7 @@ "key.usr" : "s:16BlueprintUILists19ElementHeaderFooter_7element10background17pressedBackground9configure10ListableUI0dE0VyAA0cdE7ContentVyxGGx_0aL00C0_pxcAnO_pSgxcAPxcyAMzXEtSQRzlF11RepresentedL_xmfp" } ], - "key.typename" : " (Represented, element: @escaping (Represented) -> Element, background: @escaping (Represented) -> Element?, pressedBackground: @escaping (Represented) -> Element?, configure: (inout HeaderFooter>) -> ()) -> HeaderFooter>", + "key.typename" : " (Represented, element: @escaping (Represented) -> any Element, background: @escaping (Represented) -> (any Element)?, pressedBackground: @escaping (Represented) -> (any Element)?, configure: (inout HeaderFooter>) -> ()) -> HeaderFooter>", "key.typeusr" : "$s_7element10background17pressedBackground9configure10ListableUI12HeaderFooterVy16BlueprintUILists07ElementhI7ContentVyxGGx_0jG00L0_pxcAmN_pSgxcAOxcyALzXEtcSQRzluD", "key.usr" : "s:16BlueprintUILists19ElementHeaderFooter_7element10background17pressedBackground9configure10ListableUI0dE0VyAA0cdE7ContentVyxGGx_0aL00C0_pxcAnO_pSgxcAPxcyAMzXEtSQRzlF" }, @@ -2599,7 +2599,7 @@ "key.parsed_scope.end" : 124, "key.parsed_scope.start" : 124, "key.reusingastcontext" : false, - "key.typename" : "(Represented) -> Element", + "key.typename" : "(Represented) -> any Element", "key.typeusr" : "$sy11BlueprintUI7Element_pxcD", "key.usr" : "s:16BlueprintUILists26ElementHeaderFooterContentV15elementProvidery0A2UI0C0_pxcvp" }, @@ -2622,7 +2622,7 @@ "key.parsed_scope.end" : 125, "key.parsed_scope.start" : 125, "key.reusingastcontext" : false, - "key.typename" : "(Represented) -> Element?", + "key.typename" : "(Represented) -> (any Element)?", "key.typeusr" : "$sy11BlueprintUI7Element_pSgxcD", "key.usr" : "s:16BlueprintUILists26ElementHeaderFooterContentV18backgroundProvidery0A2UI0C0_pSgxcvp" }, @@ -2645,7 +2645,7 @@ "key.parsed_scope.end" : 126, "key.parsed_scope.start" : 126, "key.reusingastcontext" : false, - "key.typename" : "(Represented) -> Element?", + "key.typename" : "(Represented) -> (any Element)?", "key.typeusr" : "$sy11BlueprintUI7Element_pSgxcD", "key.usr" : "s:16BlueprintUILists26ElementHeaderFooterContentV25pressedBackgroundProvidery0A2UI0C0_pSgxcvp" }, @@ -2734,7 +2734,7 @@ "key.parsed_scope.end" : 134, "key.parsed_scope.start" : 132, "key.reusingastcontext" : false, - "key.typename" : "Element", + "key.typename" : "any Element", "key.typeusr" : "$s11BlueprintUI7Element_pD", "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentP21elementRepresentation0A2UI7Element_pvp" }, @@ -2786,7 +2786,7 @@ "key.parsed_scope.end" : 138, "key.parsed_scope.start" : 136, "key.reusingastcontext" : false, - "key.typename" : "Element?", + "key.typename" : "(any Element)?", "key.typeusr" : "$s11BlueprintUI7Element_pSgD", "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentP10background0A2UI7Element_pSgvp" }, @@ -2838,7 +2838,7 @@ "key.parsed_scope.end" : 142, "key.parsed_scope.start" : 140, "key.reusingastcontext" : false, - "key.typename" : "Element?", + "key.typename" : "(any Element)?", "key.typeusr" : "$s11BlueprintUI7Element_pSgD", "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentP17pressedBackground0A2UI7Element_pSgvp" } @@ -3156,7 +3156,7 @@ "key.usr" : "s:16BlueprintUILists11ElementItem_2id12isEquivalent7element10background18selectedBackground9configure10ListableUI0D0VyAA0cD7ContentVyxq_GGx_s7KeyPathCyxq_GSbx_xtc0aN00C0_px_AI05ApplydO4InfoVtcAsT_pSgx_AVtcAWx_AVtcyAOzXEtSHR_r0_lF15IdentifierValueL_q_mfp" } ], - "key.typename" : " (Represented, id: KeyPath, isEquivalent: @escaping (Represented, Represented) -> Bool, element: @escaping (Represented, ApplyItemContentInfo) -> Element, background: @escaping (Represented, ApplyItemContentInfo) -> Element?, selectedBackground: @escaping (Represented, ApplyItemContentInfo) -> Element?, configure: (inout Item>) -> ()) -> Item>", + "key.typename" : " (Represented, id: KeyPath, isEquivalent: @escaping (Represented, Represented) -> Bool, element: @escaping (Represented, ApplyItemContentInfo) -> any Element, background: @escaping (Represented, ApplyItemContentInfo) -> (any Element)?, selectedBackground: @escaping (Represented, ApplyItemContentInfo) -> (any Element)?, configure: (inout Item>) -> ()) -> Item>", "key.typeusr" : "$s_2id12isEquivalent7element10background18selectedBackground9configure10ListableUI4ItemVy16BlueprintUILists07ElementK7ContentVyxq_GGx_s7KeyPathCyxq_GSbx_xtc0lJ00N0_px_AG05ApplykO4InfoVtcArS_pSgx_AUtcAVx_AUtcyANzXEtcSHR_r0_luD", "key.usr" : "s:16BlueprintUILists11ElementItem_2id12isEquivalent7element10background18selectedBackground9configure10ListableUI0D0VyAA0cD7ContentVyxq_GGx_s7KeyPathCyxq_GSbx_xtc0aN00C0_px_AI05ApplydO4InfoVtcAsT_pSgx_AVtcAWx_AVtcyAOzXEtSHR_r0_lF" }, @@ -3287,7 +3287,7 @@ "key.usr" : "s:16BlueprintUILists11ElementItem_2id7element10background18selectedBackground9configure10ListableUI0D0VyAA0cD7ContentVyxq_GGx_s7KeyPathCyxq_G0aL00C0_px_AH05ApplydM4InfoVtcArS_pSgx_AUtcAVx_AUtcyANzXEtSQRzSHR_r0_lF15IdentifierValueL_q_mfp" } ], - "key.typename" : " (Represented, id: KeyPath, element: @escaping (Represented, ApplyItemContentInfo) -> Element, background: @escaping (Represented, ApplyItemContentInfo) -> Element?, selectedBackground: @escaping (Represented, ApplyItemContentInfo) -> Element?, configure: (inout Item>) -> ()) -> Item>", + "key.typename" : " (Represented, id: KeyPath, element: @escaping (Represented, ApplyItemContentInfo) -> any Element, background: @escaping (Represented, ApplyItemContentInfo) -> (any Element)?, selectedBackground: @escaping (Represented, ApplyItemContentInfo) -> (any Element)?, configure: (inout Item>) -> ()) -> Item>", "key.typeusr" : "$s_2id7element10background18selectedBackground9configure10ListableUI4ItemVy16BlueprintUILists07ElementI7ContentVyxq_GGx_s7KeyPathCyxq_G0jH00L0_px_AF05ApplyiM4InfoVtcAqR_pSgx_ATtcAUx_ATtcyAMzXEtcSQRzSHR_r0_luD", "key.usr" : "s:16BlueprintUILists11ElementItem_2id7element10background18selectedBackground9configure10ListableUI0D0VyAA0cD7ContentVyxq_GGx_s7KeyPathCyxq_G0aL00C0_px_AH05ApplydM4InfoVtcArS_pSgx_AUtcAVx_AUtcyANzXEtSQRzSHR_r0_lF" }, @@ -3498,7 +3498,7 @@ "key.parsed_scope.end" : 133, "key.parsed_scope.start" : 133, "key.reusingastcontext" : false, - "key.typename" : "(Represented, ApplyItemContentInfo) -> Element", + "key.typename" : "(Represented, ApplyItemContentInfo) -> any Element", "key.typeusr" : "$sy11BlueprintUI7Element_px_08ListableB020ApplyItemContentInfoVtcD", "key.usr" : "s:16BlueprintUILists18ElementItemContentV15elementProvidery0A2UI0C0_px_08ListableH005ApplydE4InfoVtcvp" }, @@ -3521,7 +3521,7 @@ "key.parsed_scope.end" : 134, "key.parsed_scope.start" : 134, "key.reusingastcontext" : false, - "key.typename" : "(Represented, ApplyItemContentInfo) -> Element?", + "key.typename" : "(Represented, ApplyItemContentInfo) -> (any Element)?", "key.typeusr" : "$sy11BlueprintUI7Element_pSgx_08ListableB020ApplyItemContentInfoVtcD", "key.usr" : "s:16BlueprintUILists18ElementItemContentV18backgroundProvidery0A2UI0C0_pSgx_08ListableH005ApplydE4InfoVtcvp" }, @@ -3544,7 +3544,7 @@ "key.parsed_scope.end" : 135, "key.parsed_scope.start" : 135, "key.reusingastcontext" : false, - "key.typename" : "(Represented, ApplyItemContentInfo) -> Element?", + "key.typename" : "(Represented, ApplyItemContentInfo) -> (any Element)?", "key.typeusr" : "$sy11BlueprintUI7Element_pSgx_08ListableB020ApplyItemContentInfoVtcD", "key.usr" : "s:16BlueprintUILists18ElementItemContentV26selectedBackgroundProvidery0A2UI0C0_pSgx_08ListableI005ApplydE4InfoVtcvp" }, @@ -3748,7 +3748,7 @@ "key.substructure" : [ ], - "key.typename" : " (ElementItemContent) -> (ApplyItemContentInfo) -> Element", + "key.typename" : " (ElementItemContent) -> (ApplyItemContentInfo) -> any Element", "key.typeusr" : "$s4with11BlueprintUI7Element_p08ListableC020ApplyItemContentInfoV_tcD", "key.usr" : "s:16BlueprintUILists0A11ItemContentP7element4with0A2UI7Element_p08ListableG005ApplycD4InfoV_tF" }, @@ -3806,7 +3806,7 @@ "key.substructure" : [ ], - "key.typename" : " (ElementItemContent) -> (ApplyItemContentInfo) -> Element?", + "key.typename" : " (ElementItemContent) -> (ApplyItemContentInfo) -> (any Element)?", "key.typeusr" : "$s4with11BlueprintUI7Element_pSg08ListableC020ApplyItemContentInfoV_tcD", "key.usr" : "s:16BlueprintUILists0A11ItemContentP17backgroundElement4with0A2UI0F0_pSg08ListableH005ApplycD4InfoV_tF" }, @@ -3864,7 +3864,7 @@ "key.substructure" : [ ], - "key.typename" : " (ElementItemContent) -> (ApplyItemContentInfo) -> Element?", + "key.typename" : " (ElementItemContent) -> (ApplyItemContentInfo) -> (any Element)?", "key.typeusr" : "$s4with11BlueprintUI7Element_pSg08ListableC020ApplyItemContentInfoV_tcD", "key.usr" : "s:16BlueprintUILists0A11ItemContentP25selectedBackgroundElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF" } @@ -4084,7 +4084,7 @@ "key.offset" : 0, "key.substructure" : [ { - "key.annotated_decl" : "public struct List : Element<\/Declaration>", + "key.annotated_decl" : "public struct List : Element<\/Type><\/Declaration>", "key.bodylength" : 3429, "key.bodyoffset" : 1301, "key.column" : 15, @@ -4114,7 +4114,7 @@ "key.doclength" : 1152, "key.docoffset" : 133, "key.filepath" : "\/Users\/k\/Development\/Listable2\/BlueprintUILists\/Sources\/List.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> List<\/decl.name> : Element<\/decl.struct>", + "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> List<\/decl.name> : Element<\/ref.protocol><\/decl.struct>", "key.kind" : "source.lang.swift.decl.extension", "key.length" : 3446, "key.line" : 42, @@ -5927,7 +5927,7 @@ "key.parsed_scope.start" : 49, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Element", + "key.typename" : "any Element", "key.typeusr" : "$s11BlueprintUI7Element_pD", "key.usr" : "s:16BlueprintUILists18ListReorderGestureV7element0A2UI7Element_pvp" }, @@ -6123,7 +6123,7 @@ "key.substructure" : [ ], - "key.typename" : "(ListReorderGesture.Type) -> (Bool, ReorderingActions, ListReorderGesture.Begins, String?, Element) -> ListReorderGesture", + "key.typename" : "(ListReorderGesture.Type) -> (Bool, ReorderingActions, ListReorderGesture.Begins, String?, any Element) -> ListReorderGesture", "key.typeusr" : "$s9isEnabled7actions6begins18accessibilityLabel8wrapping16BlueprintUILists18ListReorderGestureVSb_10ListableUI17ReorderingActionsCAH6BeginsOSSSg0hN07Element_ptcD", "key.usr" : "s:16BlueprintUILists18ListReorderGestureV9isEnabled7actions6begins18accessibilityLabel8wrappingACSb_10ListableUI17ReorderingActionsCAC6BeginsOSSSg0aN07Element_ptcfc" }, @@ -6347,12 +6347,12 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (ReorderingActions, Bool, ListReorderGesture.Begins, String?) -> Element", + "key.typename" : " (Self) -> (ReorderingActions, Bool, ListReorderGesture.Begins, String?) -> any Element", "key.typeusr" : "$s4with9isEnabled6begins18accessibilityLabel11BlueprintUI7Element_p08ListableH017ReorderingActionsC_Sb0G7UILists18ListReorderGestureV6BeginsOSSSgtcD", "key.usr" : "s:11BlueprintUI7ElementP0A7UIListsE18listReorderGesture4with9isEnabled6begins18accessibilityLabelAaB_p08ListableB017ReorderingActionsC_SbAD04ListfG0V6BeginsOSSSgtF" } ], - "key.typename" : "Element.Protocol", + "key.typename" : "Element.Type", "key.typeusr" : "$s11BlueprintUI7Element_pmD", "key.usr" : "s:11BlueprintUI7ElementP" }, diff --git a/docs/JSON/ListableUI.json b/docs/JSON/ListableUI.json index 58ab77f9..20f998aa 100644 --- a/docs/JSON/ListableUI.json +++ b/docs/JSON/ListableUI.json @@ -1686,7 +1686,7 @@ }, { "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift" : { "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 7797, + "key.length" : 7976, "key.offset" : 0, "key.substructure" : [ { @@ -1699,7 +1699,7 @@ "key.offset" : 301 } ], - "key.bodylength" : 2764, + "key.bodylength" : 2943, "key.bodyoffset" : 337, "key.column" : 15, "key.decl_lang" : "source.lang.swift", @@ -1728,7 +1728,7 @@ } ], "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 2794, + "key.length" : 2973, "key.line" : 14, "key.modulename" : "ListableUI", "key.name" : "Behavior", @@ -1736,10 +1736,51 @@ "key.nameoffset" : 315, "key.offset" : 308, "key.parsed_declaration" : "public struct Behavior : Equatable", - "key.parsed_scope.end" : 77, + "key.parsed_scope.end" : 82, "key.parsed_scope.start" : 14, "key.reusingastcontext" : false, "key.substructure" : [ + { + "key.accessibility" : "source.lang.swift.accessibility.public", + "key.annotated_decl" : "public var isScrollEnabled: Bool<\/Type><\/Declaration>", + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.public", + "key.length" : 6, + "key.offset" : 398 + } + ], + "key.column" : 16, + "key.decl_lang" : "source.lang.swift", + "key.doc.column" : 16, + "key.doc.comment" : "Whether the list scroll view should be enabled.", + "key.doc.declaration" : "public var isScrollEnabled: Bool", + "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", + "key.doc.full_as_xml" : "isScrollEnabled<\/Name>s:10ListableUI8BehaviorV15isScrollEnabledSbvp<\/USR>public var isScrollEnabled: Bool<\/Declaration>Whether the list scroll view should be enabled.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 17, + "key.doc.name" : "isScrollEnabled", + "key.doc.type" : "Other", + "key.doclength" : 52, + "key.docoffset" : 342, + "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", + "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isScrollEnabled<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", + "key.kind" : "source.lang.swift.decl.var.instance", + "key.length" : 25, + "key.line" : 17, + "key.modulename" : "ListableUI", + "key.name" : "isScrollEnabled", + "key.namelength" : 15, + "key.nameoffset" : 409, + "key.offset" : 405, + "key.parsed_declaration" : "public var isScrollEnabled: Bool", + "key.parsed_scope.end" : 17, + "key.parsed_scope.start" : 17, + "key.reusingastcontext" : false, + "key.setter_accessibility" : "source.lang.swift.accessibility.public", + "key.typename" : "Bool", + "key.typeusr" : "$sSbD", + "key.usr" : "s:10ListableUI8BehaviorV15isScrollEnabledSbvp" + }, { "key.accessibility" : "source.lang.swift.accessibility.public", "key.annotated_decl" : "public var keyboardDismissMode: UIScrollView<\/Type>.KeyboardDismissMode<\/Type><\/Declaration>", @@ -1747,7 +1788,7 @@ { "key.attribute" : "source.decl.attribute.public", "key.length" : 6, - "key.offset" : 436 + "key.offset" : 530 } ], "key.column" : 16, @@ -1756,25 +1797,25 @@ "key.doc.comment" : "How the keyboard should be dismissed (if at all) based on scrolling of the list view.", "key.doc.declaration" : "public var keyboardDismissMode: UIScrollView.KeyboardDismissMode", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "keyboardDismissMode<\/Name>s:10ListableUI8BehaviorV19keyboardDismissModeSo020UIScrollViewKeyboardeF0Vvp<\/USR>public var keyboardDismissMode: UIScrollView.KeyboardDismissMode<\/Declaration>How the keyboard should be dismissed (if at all) based on scrolling of the list view.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 17, + "key.doc.full_as_xml" : "keyboardDismissMode<\/Name>s:10ListableUI8BehaviorV19keyboardDismissModeSo020UIScrollViewKeyboardeF0Vvp<\/USR>public var keyboardDismissMode: UIScrollView.KeyboardDismissMode<\/Declaration>How the keyboard should be dismissed (if at all) based on scrolling of the list view.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 20, "key.doc.name" : "keyboardDismissMode", "key.doc.type" : "Other", "key.doclength" : 90, - "key.docoffset" : 342, + "key.docoffset" : 436, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> keyboardDismissMode<\/decl.name>: UIScrollView<\/ref.class>.KeyboardDismissMode<\/ref.enum><\/decl.var.type><\/decl.var.instance>", "key.kind" : "source.lang.swift.decl.var.instance", "key.length" : 58, - "key.line" : 17, + "key.line" : 20, "key.modulename" : "ListableUI", "key.name" : "keyboardDismissMode", "key.namelength" : 19, - "key.nameoffset" : 447, - "key.offset" : 443, + "key.nameoffset" : 541, + "key.offset" : 537, "key.parsed_declaration" : "public var keyboardDismissMode : UIScrollView.KeyboardDismissMode", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, + "key.parsed_scope.end" : 20, + "key.parsed_scope.start" : 20, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.public", "key.typename" : "UIScrollView.KeyboardDismissMode", @@ -1788,7 +1829,7 @@ { "key.attribute" : "source.decl.attribute.public", "key.length" : 6, - "key.offset" : 602 + "key.offset" : 696 } ], "key.column" : 16, @@ -1797,25 +1838,25 @@ "key.doc.comment" : "How to adjust the `contentInset` of the list when the keyboard visibility changes.", "key.doc.declaration" : "public var keyboardAdjustmentMode: KeyboardAdjustmentMode", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "keyboardAdjustmentMode<\/Name>s:10ListableUI8BehaviorV22keyboardAdjustmentModeAC08KeyboardeF0Ovp<\/USR>public var keyboardAdjustmentMode: KeyboardAdjustmentMode<\/Declaration>How to adjust the contentInset<\/codeVoice> of the list when the keyboard visibility changes.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 20, + "key.doc.full_as_xml" : "keyboardAdjustmentMode<\/Name>s:10ListableUI8BehaviorV22keyboardAdjustmentModeAC08KeyboardeF0Ovp<\/USR>public var keyboardAdjustmentMode: KeyboardAdjustmentMode<\/Declaration>How to adjust the contentInset<\/codeVoice> of the list when the keyboard visibility changes.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 23, "key.doc.name" : "keyboardAdjustmentMode", "key.doc.type" : "Other", "key.doclength" : 87, - "key.docoffset" : 511, + "key.docoffset" : 605, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> keyboardAdjustmentMode<\/decl.name>: KeyboardAdjustmentMode<\/ref.enum><\/decl.var.type><\/decl.var.instance>", "key.kind" : "source.lang.swift.decl.var.instance", "key.length" : 51, - "key.line" : 20, + "key.line" : 23, "key.modulename" : "ListableUI", "key.name" : "keyboardAdjustmentMode", "key.namelength" : 22, - "key.nameoffset" : 613, - "key.offset" : 609, + "key.nameoffset" : 707, + "key.offset" : 703, "key.parsed_declaration" : "public var keyboardAdjustmentMode : KeyboardAdjustmentMode", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, + "key.parsed_scope.end" : 23, + "key.parsed_scope.start" : 23, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.public", "key.typename" : "Behavior.KeyboardAdjustmentMode", @@ -1829,7 +1870,7 @@ { "key.attribute" : "source.decl.attribute.public", "key.length" : 6, - "key.offset" : 811 + "key.offset" : 905 } ], "key.column" : 16, @@ -1838,25 +1879,25 @@ "key.doc.comment" : "How the list should react when the user taps the application status bar.\nThe default value of this enables scrolling to top.", "key.doc.declaration" : "public var scrollsToTop: ScrollsToTop", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "scrollsToTop<\/Name>s:10ListableUI8BehaviorV12scrollsToTopAC07ScrollseF0Ovp<\/USR>public var scrollsToTop: ScrollsToTop<\/Declaration>How the list should react when the user taps the application status bar. The default value of this enables scrolling to top.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 24, + "key.doc.full_as_xml" : "scrollsToTop<\/Name>s:10ListableUI8BehaviorV12scrollsToTopAC07ScrollseF0Ovp<\/USR>public var scrollsToTop: ScrollsToTop<\/Declaration>How the list should react when the user taps the application status bar. The default value of this enables scrolling to top.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 27, "key.doc.name" : "scrollsToTop", "key.doc.type" : "Other", "key.doclength" : 137, - "key.docoffset" : 670, + "key.docoffset" : 764, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> scrollsToTop<\/decl.name>: ScrollsToTop<\/ref.enum><\/decl.var.type><\/decl.var.instance>", "key.kind" : "source.lang.swift.decl.var.instance", "key.length" : 31, - "key.line" : 24, + "key.line" : 27, "key.modulename" : "ListableUI", "key.name" : "scrollsToTop", "key.namelength" : 12, - "key.nameoffset" : 822, - "key.offset" : 818, + "key.nameoffset" : 916, + "key.offset" : 912, "key.parsed_declaration" : "public var scrollsToTop : ScrollsToTop", - "key.parsed_scope.end" : 24, - "key.parsed_scope.start" : 24, + "key.parsed_scope.end" : 27, + "key.parsed_scope.start" : 27, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.public", "key.typename" : "Behavior.ScrollsToTop", @@ -1870,7 +1911,7 @@ { "key.attribute" : "source.decl.attribute.public", "key.length" : 6, - "key.offset" : 918 + "key.offset" : 1012 } ], "key.column" : 16, @@ -1879,25 +1920,25 @@ "key.doc.comment" : "How the list should respond to selection attempts.", "key.doc.declaration" : "public var selectionMode: SelectionMode", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "selectionMode<\/Name>s:10ListableUI8BehaviorV13selectionModeAC09SelectionE0Ovp<\/USR>public var selectionMode: SelectionMode<\/Declaration>How the list should respond to selection attempts.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 27, + "key.doc.full_as_xml" : "selectionMode<\/Name>s:10ListableUI8BehaviorV13selectionModeAC09SelectionE0Ovp<\/USR>public var selectionMode: SelectionMode<\/Declaration>How the list should respond to selection attempts.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 30, "key.doc.name" : "selectionMode", "key.doc.type" : "Other", "key.doclength" : 55, - "key.docoffset" : 859, + "key.docoffset" : 953, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> selectionMode<\/decl.name>: SelectionMode<\/ref.enum><\/decl.var.type><\/decl.var.instance>", "key.kind" : "source.lang.swift.decl.var.instance", "key.length" : 33, - "key.line" : 27, + "key.line" : 30, "key.modulename" : "ListableUI", "key.name" : "selectionMode", "key.namelength" : 13, - "key.nameoffset" : 929, - "key.offset" : 925, + "key.nameoffset" : 1023, + "key.offset" : 1019, "key.parsed_declaration" : "public var selectionMode : SelectionMode", - "key.parsed_scope.end" : 27, - "key.parsed_scope.start" : 27, + "key.parsed_scope.end" : 30, + "key.parsed_scope.start" : 30, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.public", "key.typename" : "Behavior.SelectionMode", @@ -1911,7 +1952,7 @@ { "key.attribute" : "source.decl.attribute.public", "key.length" : 6, - "key.offset" : 1139 + "key.offset" : 1233 } ], "key.column" : 16, @@ -1920,25 +1961,25 @@ "key.doc.comment" : "How the list should behave when its content takes up less space than is available in the list view.\nTODO: This should move to individual layout types.", "key.doc.declaration" : "public var underflow: Underflow", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "underflow<\/Name>s:10ListableUI8BehaviorV9underflowAC9UnderflowVvp<\/USR>public var underflow: Underflow<\/Declaration>How the list should behave when its content takes up less space than is available in the list view. TODO: This should move to individual layout types.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 31, + "key.doc.full_as_xml" : "underflow<\/Name>s:10ListableUI8BehaviorV9underflowAC9UnderflowVvp<\/USR>public var underflow: Underflow<\/Declaration>How the list should behave when its content takes up less space than is available in the list view. TODO: This should move to individual layout types.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 34, "key.doc.name" : "underflow", "key.doc.type" : "Other", "key.doclength" : 163, - "key.docoffset" : 972, + "key.docoffset" : 1066, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> underflow<\/decl.name>: Underflow<\/ref.struct><\/decl.var.type><\/decl.var.instance>", "key.kind" : "source.lang.swift.decl.var.instance", "key.length" : 25, - "key.line" : 31, + "key.line" : 34, "key.modulename" : "ListableUI", "key.name" : "underflow", "key.namelength" : 9, - "key.nameoffset" : 1150, - "key.offset" : 1146, + "key.nameoffset" : 1244, + "key.offset" : 1240, "key.parsed_declaration" : "public var underflow : Underflow", - "key.parsed_scope.end" : 31, - "key.parsed_scope.start" : 31, + "key.parsed_scope.end" : 34, + "key.parsed_scope.start" : 34, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.public", "key.typename" : "Behavior.Underflow", @@ -1952,7 +1993,7 @@ { "key.attribute" : "source.decl.attribute.public", "key.length" : 6, - "key.offset" : 1280 + "key.offset" : 1374 } ], "key.column" : 16, @@ -1961,25 +2002,25 @@ "key.doc.comment" : "A Boolean value that controls whether touches in the content view always lead to tracking.", "key.doc.declaration" : "public var canCancelContentTouches: Bool", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "canCancelContentTouches<\/Name>s:10ListableUI8BehaviorV23canCancelContentTouchesSbvp<\/USR>public var canCancelContentTouches: Bool<\/Declaration>A Boolean value that controls whether touches in the content view always lead to tracking.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 34, + "key.doc.full_as_xml" : "canCancelContentTouches<\/Name>s:10ListableUI8BehaviorV23canCancelContentTouchesSbvp<\/USR>public var canCancelContentTouches: Bool<\/Declaration>A Boolean value that controls whether touches in the content view always lead to tracking.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 37, "key.doc.name" : "canCancelContentTouches", "key.doc.type" : "Other", "key.doclength" : 95, - "key.docoffset" : 1181, + "key.docoffset" : 1275, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> canCancelContentTouches<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", "key.kind" : "source.lang.swift.decl.var.instance", "key.length" : 34, - "key.line" : 34, + "key.line" : 37, "key.modulename" : "ListableUI", "key.name" : "canCancelContentTouches", "key.namelength" : 23, - "key.nameoffset" : 1291, - "key.offset" : 1287, + "key.nameoffset" : 1385, + "key.offset" : 1381, "key.parsed_declaration" : "public var canCancelContentTouches : Bool", - "key.parsed_scope.end" : 34, - "key.parsed_scope.start" : 34, + "key.parsed_scope.end" : 37, + "key.parsed_scope.start" : 37, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.public", "key.typename" : "Bool", @@ -1993,7 +2034,7 @@ { "key.attribute" : "source.decl.attribute.public", "key.length" : 6, - "key.offset" : 1439 + "key.offset" : 1533 } ], "key.column" : 16, @@ -2002,25 +2043,25 @@ "key.doc.comment" : "A Boolean value that determines whether the scroll view delays the handling of touch-down gestures.", "key.doc.declaration" : "public var delaysContentTouches: Bool", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "delaysContentTouches<\/Name>s:10ListableUI8BehaviorV20delaysContentTouchesSbvp<\/USR>public var delaysContentTouches: Bool<\/Declaration>A Boolean value that determines whether the scroll view delays the handling of touch-down gestures.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 37, + "key.doc.full_as_xml" : "delaysContentTouches<\/Name>s:10ListableUI8BehaviorV20delaysContentTouchesSbvp<\/USR>public var delaysContentTouches: Bool<\/Declaration>A Boolean value that determines whether the scroll view delays the handling of touch-down gestures.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 40, "key.doc.name" : "delaysContentTouches", "key.doc.type" : "Other", "key.doclength" : 104, - "key.docoffset" : 1331, + "key.docoffset" : 1425, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> delaysContentTouches<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", "key.kind" : "source.lang.swift.decl.var.instance", "key.length" : 31, - "key.line" : 37, + "key.line" : 40, "key.modulename" : "ListableUI", "key.name" : "delaysContentTouches", "key.namelength" : 20, - "key.nameoffset" : 1450, - "key.offset" : 1446, + "key.nameoffset" : 1544, + "key.offset" : 1540, "key.parsed_declaration" : "public var delaysContentTouches : Bool", - "key.parsed_scope.end" : 37, - "key.parsed_scope.start" : 37, + "key.parsed_scope.end" : 40, + "key.parsed_scope.start" : 40, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.public", "key.typename" : "Bool", @@ -2034,7 +2075,7 @@ { "key.attribute" : "source.decl.attribute.public", "key.length" : 6, - "key.offset" : 1544 + "key.offset" : 1638 } ], "key.column" : 16, @@ -2043,25 +2084,25 @@ "key.doc.comment" : "Is paging enabled on the underlying scroll view.", "key.doc.declaration" : "public var isPagingEnabled: Bool", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "isPagingEnabled<\/Name>s:10ListableUI8BehaviorV15isPagingEnabledSbvp<\/USR>public var isPagingEnabled: Bool<\/Declaration>Is paging enabled on the underlying scroll view.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 40, + "key.doc.full_as_xml" : "isPagingEnabled<\/Name>s:10ListableUI8BehaviorV15isPagingEnabledSbvp<\/USR>public var isPagingEnabled: Bool<\/Declaration>Is paging enabled on the underlying scroll view.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 43, "key.doc.name" : "isPagingEnabled", "key.doc.type" : "Other", "key.doclength" : 53, - "key.docoffset" : 1487, + "key.docoffset" : 1581, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isPagingEnabled<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", "key.kind" : "source.lang.swift.decl.var.instance", "key.length" : 26, - "key.line" : 40, + "key.line" : 43, "key.modulename" : "ListableUI", "key.name" : "isPagingEnabled", "key.namelength" : 15, - "key.nameoffset" : 1555, - "key.offset" : 1551, + "key.nameoffset" : 1649, + "key.offset" : 1645, "key.parsed_declaration" : "public var isPagingEnabled : Bool", - "key.parsed_scope.end" : 40, - "key.parsed_scope.start" : 40, + "key.parsed_scope.end" : 43, + "key.parsed_scope.start" : 43, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.public", "key.typename" : "Bool", @@ -2075,7 +2116,7 @@ { "key.attribute" : "source.decl.attribute.public", "key.length" : 6, - "key.offset" : 1632 + "key.offset" : 1726 } ], "key.column" : 16, @@ -2084,25 +2125,25 @@ "key.doc.comment" : "The rate at which scrolling decelerates.", "key.doc.declaration" : "public var decelerationRate: DecelerationRate", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "decelerationRate<\/Name>s:10ListableUI8BehaviorV16decelerationRateAC012DecelerationE0Ovp<\/USR>public var decelerationRate: DecelerationRate<\/Declaration>The rate at which scrolling decelerates.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 43, + "key.doc.full_as_xml" : "decelerationRate<\/Name>s:10ListableUI8BehaviorV16decelerationRateAC012DecelerationE0Ovp<\/USR>public var decelerationRate: DecelerationRate<\/Declaration>The rate at which scrolling decelerates.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 46, "key.doc.name" : "decelerationRate", "key.doc.type" : "Other", "key.doclength" : 45, - "key.docoffset" : 1583, + "key.docoffset" : 1677, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> decelerationRate<\/decl.name>: DecelerationRate<\/ref.enum><\/decl.var.type><\/decl.var.instance>", "key.kind" : "source.lang.swift.decl.var.instance", "key.length" : 38, - "key.line" : 43, + "key.line" : 46, "key.modulename" : "ListableUI", "key.name" : "decelerationRate", "key.namelength" : 16, - "key.nameoffset" : 1643, - "key.offset" : 1639, + "key.nameoffset" : 1737, + "key.offset" : 1733, "key.parsed_declaration" : "public var decelerationRate: DecelerationRate", - "key.parsed_scope.end" : 43, - "key.parsed_scope.start" : 43, + "key.parsed_scope.end" : 46, + "key.parsed_scope.start" : 46, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.public", "key.typename" : "Behavior.DecelerationRate", @@ -2116,7 +2157,7 @@ { "key.attribute" : "source.decl.attribute.public", "key.length" : 6, - "key.offset" : 1862 + "key.offset" : 1956 } ], "key.column" : 16, @@ -2125,25 +2166,25 @@ "key.doc.comment" : "Applicable when the `layoutDirection` is `vertical`. The gravity determines\nhow inserting new elements or changing the `contentInset` affects the scroll position.", "key.doc.declaration" : "public var verticalLayoutGravity: VerticalLayoutGravity", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "verticalLayoutGravity<\/Name>s:10ListableUI8BehaviorV21verticalLayoutGravityAC08VerticaleF0Ovp<\/USR>public var verticalLayoutGravity: VerticalLayoutGravity<\/Declaration>Applicable when the layoutDirection<\/codeVoice> is vertical<\/codeVoice>. The gravity determines how inserting new elements or changing the contentInset<\/codeVoice> affects the scroll position.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 47, + "key.doc.full_as_xml" : "verticalLayoutGravity<\/Name>s:10ListableUI8BehaviorV21verticalLayoutGravityAC08VerticaleF0Ovp<\/USR>public var verticalLayoutGravity: VerticalLayoutGravity<\/Declaration>Applicable when the layoutDirection<\/codeVoice> is vertical<\/codeVoice>. The gravity determines how inserting new elements or changing the contentInset<\/codeVoice> affects the scroll position.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 50, "key.doc.name" : "verticalLayoutGravity", "key.doc.type" : "Other", "key.doclength" : 175, - "key.docoffset" : 1683, + "key.docoffset" : 1777, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> verticalLayoutGravity<\/decl.name>: VerticalLayoutGravity<\/ref.enum><\/decl.var.type><\/decl.var.instance>", "key.kind" : "source.lang.swift.decl.var.instance", "key.length" : 49, - "key.line" : 47, + "key.line" : 50, "key.modulename" : "ListableUI", "key.name" : "verticalLayoutGravity", "key.namelength" : 21, - "key.nameoffset" : 1873, - "key.offset" : 1869, + "key.nameoffset" : 1967, + "key.offset" : 1963, "key.parsed_declaration" : "public var verticalLayoutGravity : VerticalLayoutGravity", - "key.parsed_scope.end" : 47, - "key.parsed_scope.start" : 47, + "key.parsed_scope.end" : 50, + "key.parsed_scope.start" : 50, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.public", "key.typename" : "Behavior.VerticalLayoutGravity", @@ -2152,48 +2193,48 @@ }, { "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(keyboardDismissMode: UIScrollView<\/Type>.KeyboardDismissMode<\/Type> = .interactive, keyboardAdjustmentMode: KeyboardAdjustmentMode<\/Type> = .adjustsWhenVisible, scrollsToTop: ScrollsToTop<\/Type> = .enabled, selectionMode: SelectionMode<\/Type> = .single, underflow: Underflow<\/Type> = Underflow(), canCancelContentTouches: Bool<\/Type> = true, delaysContentTouches: Bool<\/Type> = true, isPagingEnabled: Bool<\/Type> = false, decelerationRate: DecelerationRate<\/Type> = .normal, verticalLayoutGravity: VerticalLayoutGravity<\/Type> = .top)<\/Declaration>", + "key.annotated_decl" : "public init(isScrollEnabled: Bool<\/Type> = true, keyboardDismissMode: UIScrollView<\/Type>.KeyboardDismissMode<\/Type> = .interactive, keyboardAdjustmentMode: KeyboardAdjustmentMode<\/Type> = .adjustsWhenVisible, scrollsToTop: ScrollsToTop<\/Type> = .enabled, selectionMode: SelectionMode<\/Type> = .single, underflow: Underflow<\/Type> = Underflow(), canCancelContentTouches: Bool<\/Type> = true, delaysContentTouches: Bool<\/Type> = true, isPagingEnabled: Bool<\/Type> = false, decelerationRate: DecelerationRate<\/Type> = .normal, verticalLayoutGravity: VerticalLayoutGravity<\/Type> = .top)<\/Declaration>", "key.attributes" : [ { "key.attribute" : "source.decl.attribute.public", "key.length" : 6, - "key.offset" : 1991 + "key.offset" : 2085 } ], - "key.bodylength" : 541, - "key.bodyoffset" : 2558, + "key.bodylength" : 588, + "key.bodyoffset" : 2690, "key.column" : 12, "key.decl_lang" : "source.lang.swift", "key.doc.column" : 12, "key.doc.comment" : "Creates a new `Behavior` based on the provided parameters.", - "key.doc.declaration" : "public init(keyboardDismissMode: UIScrollView.KeyboardDismissMode = .interactive, keyboardAdjustmentMode: KeyboardAdjustmentMode = .adjustsWhenVisible, scrollsToTop: ScrollsToTop = .enabled, selectionMode: SelectionMode = .single, underflow: Underflow = Underflow(), canCancelContentTouches: Bool = true, delaysContentTouches: Bool = true, isPagingEnabled: Bool = false, decelerationRate: DecelerationRate = .normal, verticalLayoutGravity: VerticalLayoutGravity = .top)", + "key.doc.declaration" : "public init(isScrollEnabled: Bool = true, keyboardDismissMode: UIScrollView.KeyboardDismissMode = .interactive, keyboardAdjustmentMode: KeyboardAdjustmentMode = .adjustsWhenVisible, scrollsToTop: ScrollsToTop = .enabled, selectionMode: SelectionMode = .single, underflow: Underflow = Underflow(), canCancelContentTouches: Bool = true, delaysContentTouches: Bool = true, isPagingEnabled: Bool = false, decelerationRate: DecelerationRate = .normal, verticalLayoutGravity: VerticalLayoutGravity = .top)", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "init(keyboardDismissMode:keyboardAdjustmentMode:scrollsToTop:selectionMode:underflow:canCancelContentTouches:delaysContentTouches:isPagingEnabled:decelerationRate:verticalLayoutGravity:)<\/Name>s:10ListableUI8BehaviorV19keyboardDismissMode0d10AdjustmentF012scrollsToTop09selectionF09underflow23canCancelContentTouches06delaysoP015isPagingEnabled16decelerationRate21verticalLayoutGravityACSo020UIScrollViewKeyboardeF0V_AC08KeyboardgF0OAC07ScrollsiJ0OAC09SelectionF0OAC9UnderflowVS3bAC012DecelerationV0OAC08VerticalxY0Otcfc<\/USR>public init(keyboardDismissMode: UIScrollView.KeyboardDismissMode = .interactive, keyboardAdjustmentMode: KeyboardAdjustmentMode = .adjustsWhenVisible, scrollsToTop: ScrollsToTop = .enabled, selectionMode: SelectionMode = .single, underflow: Underflow = Underflow(), canCancelContentTouches: Bool = true, delaysContentTouches: Bool = true, isPagingEnabled: Bool = false, decelerationRate: DecelerationRate = .normal, verticalLayoutGravity: VerticalLayoutGravity = .top)<\/Declaration>Creates a new Behavior<\/codeVoice> based on the provided parameters.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 50, - "key.doc.name" : "init(keyboardDismissMode:keyboardAdjustmentMode:scrollsToTop:selectionMode:underflow:canCancelContentTouches:delaysContentTouches:isPagingEnabled:decelerationRate:verticalLayoutGravity:)", + "key.doc.full_as_xml" : "init(isScrollEnabled:keyboardDismissMode:keyboardAdjustmentMode:scrollsToTop:selectionMode:underflow:canCancelContentTouches:delaysContentTouches:isPagingEnabled:decelerationRate:verticalLayoutGravity:)<\/Name>s:10ListableUI8BehaviorV15isScrollEnabled19keyboardDismissMode0g10AdjustmentI012scrollsToTop09selectionI09underflow23canCancelContentTouches06delaysrS00d6PagingF016decelerationRate21verticalLayoutGravityACSb_So020UIScrollViewKeyboardhI0VAC08KeyboardjI0OAC07ScrollslM0OAC09SelectionI0OAC9UnderflowVS3bAC012DecelerationW0OAC08VerticalyZ0Otcfc<\/USR>public init(isScrollEnabled: Bool = true, keyboardDismissMode: UIScrollView.KeyboardDismissMode = .interactive, keyboardAdjustmentMode: KeyboardAdjustmentMode = .adjustsWhenVisible, scrollsToTop: ScrollsToTop = .enabled, selectionMode: SelectionMode = .single, underflow: Underflow = Underflow(), canCancelContentTouches: Bool = true, delaysContentTouches: Bool = true, isPagingEnabled: Bool = false, decelerationRate: DecelerationRate = .normal, verticalLayoutGravity: VerticalLayoutGravity = .top)<\/Declaration>Creates a new Behavior<\/codeVoice> based on the provided parameters.<\/Para><\/Abstract><\/CommentParts><\/Function>", + "key.doc.line" : 53, + "key.doc.name" : "init(isScrollEnabled:keyboardDismissMode:keyboardAdjustmentMode:scrollsToTop:selectionMode:underflow:canCancelContentTouches:delaysContentTouches:isPagingEnabled:decelerationRate:verticalLayoutGravity:)", "key.doc.type" : "Function", "key.doclength" : 63, - "key.docoffset" : 1924, + "key.docoffset" : 2018, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(keyboardDismissMode<\/decl.var.parameter.argument_label>: UIScrollView<\/ref.class>.KeyboardDismissMode<\/ref.enum><\/decl.var.parameter.type> = .interactive<\/decl.var.parameter>, keyboardAdjustmentMode<\/decl.var.parameter.argument_label>: KeyboardAdjustmentMode<\/ref.enum><\/decl.var.parameter.type> = .adjustsWhenVisible<\/decl.var.parameter>, scrollsToTop<\/decl.var.parameter.argument_label>: ScrollsToTop<\/ref.enum><\/decl.var.parameter.type> = .enabled<\/decl.var.parameter>, selectionMode<\/decl.var.parameter.argument_label>: SelectionMode<\/ref.enum><\/decl.var.parameter.type> = .single<\/decl.var.parameter>, underflow<\/decl.var.parameter.argument_label>: Underflow<\/ref.struct><\/decl.var.parameter.type> = Underflow()<\/decl.var.parameter>, canCancelContentTouches<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = true<\/decl.var.parameter>, delaysContentTouches<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = true<\/decl.var.parameter>, isPagingEnabled<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>, decelerationRate<\/decl.var.parameter.argument_label>: DecelerationRate<\/ref.enum><\/decl.var.parameter.type> = .normal<\/decl.var.parameter>, verticalLayoutGravity<\/decl.var.parameter.argument_label>: VerticalLayoutGravity<\/ref.enum><\/decl.var.parameter.type> = .top<\/decl.var.parameter>)<\/decl.function.constructor>", + "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(isScrollEnabled<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = true<\/decl.var.parameter>, keyboardDismissMode<\/decl.var.parameter.argument_label>: UIScrollView<\/ref.class>.KeyboardDismissMode<\/ref.enum><\/decl.var.parameter.type> = .interactive<\/decl.var.parameter>, keyboardAdjustmentMode<\/decl.var.parameter.argument_label>: KeyboardAdjustmentMode<\/ref.enum><\/decl.var.parameter.type> = .adjustsWhenVisible<\/decl.var.parameter>, scrollsToTop<\/decl.var.parameter.argument_label>: ScrollsToTop<\/ref.enum><\/decl.var.parameter.type> = .enabled<\/decl.var.parameter>, selectionMode<\/decl.var.parameter.argument_label>: SelectionMode<\/ref.enum><\/decl.var.parameter.type> = .single<\/decl.var.parameter>, underflow<\/decl.var.parameter.argument_label>: Underflow<\/ref.struct><\/decl.var.parameter.type> = Underflow()<\/decl.var.parameter>, canCancelContentTouches<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = true<\/decl.var.parameter>, delaysContentTouches<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = true<\/decl.var.parameter>, isPagingEnabled<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>, decelerationRate<\/decl.var.parameter.argument_label>: DecelerationRate<\/ref.enum><\/decl.var.parameter.type> = .normal<\/decl.var.parameter>, verticalLayoutGravity<\/decl.var.parameter.argument_label>: VerticalLayoutGravity<\/ref.enum><\/decl.var.parameter.type> = .top<\/decl.var.parameter>)<\/decl.function.constructor>", "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1102, - "key.line" : 50, + "key.length" : 1187, + "key.line" : 53, "key.modulename" : "ListableUI", - "key.name" : "init(keyboardDismissMode:keyboardAdjustmentMode:scrollsToTop:selectionMode:underflow:canCancelContentTouches:delaysContentTouches:isPagingEnabled:decelerationRate:verticalLayoutGravity:)", - "key.namelength" : 558, - "key.nameoffset" : 1998, - "key.offset" : 1998, - "key.parsed_declaration" : "public init(\n keyboardDismissMode : UIScrollView.KeyboardDismissMode = .interactive,\n keyboardAdjustmentMode : KeyboardAdjustmentMode = .adjustsWhenVisible,\n scrollsToTop : ScrollsToTop = .enabled,\n selectionMode : SelectionMode = .single,\n underflow : Underflow = Underflow(),\n canCancelContentTouches : Bool = true,\n delaysContentTouches : Bool = true,\n isPagingEnabled : Bool = false,\n decelerationRate : DecelerationRate = .normal,\n verticalLayoutGravity : VerticalLayoutGravity = .top\n)", - "key.parsed_scope.end" : 76, - "key.parsed_scope.start" : 50, + "key.name" : "init(isScrollEnabled:keyboardDismissMode:keyboardAdjustmentMode:scrollsToTop:selectionMode:underflow:canCancelContentTouches:delaysContentTouches:isPagingEnabled:decelerationRate:verticalLayoutGravity:)", + "key.namelength" : 596, + "key.nameoffset" : 2092, + "key.offset" : 2092, + "key.parsed_declaration" : "public init(\n isScrollEnabled: Bool = true,\n keyboardDismissMode : UIScrollView.KeyboardDismissMode = .interactive,\n keyboardAdjustmentMode : KeyboardAdjustmentMode = .adjustsWhenVisible,\n scrollsToTop : ScrollsToTop = .enabled,\n selectionMode : SelectionMode = .single,\n underflow : Underflow = Underflow(),\n canCancelContentTouches : Bool = true,\n delaysContentTouches : Bool = true,\n isPagingEnabled : Bool = false,\n decelerationRate : DecelerationRate = .normal,\n verticalLayoutGravity : VerticalLayoutGravity = .top\n)", + "key.parsed_scope.end" : 81, + "key.parsed_scope.start" : 53, "key.reusingastcontext" : false, "key.substructure" : [ ], - "key.typename" : "(Behavior.Type) -> (UIScrollView.KeyboardDismissMode, Behavior.KeyboardAdjustmentMode, Behavior.ScrollsToTop, Behavior.SelectionMode, Behavior.Underflow, Bool, Bool, Bool, Behavior.DecelerationRate, Behavior.VerticalLayoutGravity) -> Behavior", - "key.typeusr" : "$s19keyboardDismissMode0a10AdjustmentC012scrollsToTop09selectionC09underflow23canCancelContentTouches06delayslM015isPagingEnabled16decelerationRate21verticalLayoutGravity10ListableUI8BehaviorVSo020UIScrollViewKeyboardbC0V_AM08KeyboarddC0OAM07ScrollsfG0OAM09SelectionC0OAM9UnderflowVS3bAM012DecelerationS0OAM08VerticaluV0OtcD", - "key.usr" : "s:10ListableUI8BehaviorV19keyboardDismissMode0d10AdjustmentF012scrollsToTop09selectionF09underflow23canCancelContentTouches06delaysoP015isPagingEnabled16decelerationRate21verticalLayoutGravityACSo020UIScrollViewKeyboardeF0V_AC08KeyboardgF0OAC07ScrollsiJ0OAC09SelectionF0OAC9UnderflowVS3bAC012DecelerationV0OAC08VerticalxY0Otcfc" + "key.typename" : "(Behavior.Type) -> (Bool, UIScrollView.KeyboardDismissMode, Behavior.KeyboardAdjustmentMode, Behavior.ScrollsToTop, Behavior.SelectionMode, Behavior.Underflow, Bool, Bool, Bool, Behavior.DecelerationRate, Behavior.VerticalLayoutGravity) -> Behavior", + "key.typeusr" : "$s15isScrollEnabled19keyboardDismissMode0d10AdjustmentF012scrollsToTop09selectionF09underflow23canCancelContentTouches06delaysoP00a6PagingC016decelerationRate21verticalLayoutGravity10ListableUI8BehaviorVSb_So020UIScrollViewKeyboardeF0VAN08KeyboardgF0OAN07ScrollsiJ0OAN09SelectionF0OAN9UnderflowVS3bAN012DecelerationT0OAN08VerticalvW0OtcD", + "key.usr" : "s:10ListableUI8BehaviorV15isScrollEnabled19keyboardDismissMode0g10AdjustmentI012scrollsToTop09selectionI09underflow23canCancelContentTouches06delaysrS00d6PagingF016decelerationRate21verticalLayoutGravityACSb_So020UIScrollViewKeyboardhI0VAC08KeyboardjI0OAC07ScrollslM0OAC09SelectionI0OAC9UnderflowVS3bAC012DecelerationW0OAC08VerticalyZ0Otcfc" } ], "key.typename" : "Behavior.Type", @@ -2203,7 +2244,7 @@ { "key.annotated_decl" : "public struct Behavior : Equatable<\/Type><\/Declaration>", "key.bodylength" : 4310, - "key.bodyoffset" : 3125, + "key.bodyoffset" : 3304, "key.column" : 15, "key.decl_lang" : "source.lang.swift", "key.doc.column" : 15, @@ -2221,11 +2262,11 @@ "key.modulename" : "ListableUI", "key.name" : "Behavior", "key.namelength" : 8, - "key.nameoffset" : 3115, - "key.offset" : 3105, + "key.nameoffset" : 3294, + "key.offset" : 3284, "key.parsed_declaration" : "extension Behavior", - "key.parsed_scope.end" : 193, - "key.parsed_scope.start" : 80, + "key.parsed_scope.end" : 198, + "key.parsed_scope.start" : 85, "key.reusingastcontext" : false, "key.substructure" : [ { @@ -2235,28 +2276,28 @@ { "key.attribute" : "source.decl.attribute.public", "key.length" : 6, - "key.offset" : 3221 + "key.offset" : 3400 } ], "key.bodylength" : 492, - "key.bodyoffset" : 3273, + "key.bodyoffset" : 3452, "key.column" : 17, "key.decl_lang" : "source.lang.swift", "key.doc.column" : 17, "key.doc.comment" : "How to adjust the `contentInset` of the list when the keyboard visibility changes.", "key.doc.declaration" : "public enum KeyboardAdjustmentMode : Equatable", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "KeyboardAdjustmentMode<\/Name>s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO<\/USR>public enum KeyboardAdjustmentMode : Equatable<\/Declaration>How to adjust the contentInset<\/codeVoice> of the list when the keyboard visibility changes.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 83, + "key.doc.full_as_xml" : "KeyboardAdjustmentMode<\/Name>s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO<\/USR>public enum KeyboardAdjustmentMode : Equatable<\/Declaration>How to adjust the contentInset<\/codeVoice> of the list when the keyboard visibility changes.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 88, "key.doc.name" : "KeyboardAdjustmentMode", "key.doc.type" : "Other", "key.doclength" : 87, - "key.docoffset" : 3130, + "key.docoffset" : 3309, "key.elements" : [ { "key.kind" : "source.lang.swift.structure.elem.typeref", "key.length" : 9, - "key.offset" : 3258 + "key.offset" : 3437 } ], "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", @@ -2268,21 +2309,21 @@ ], "key.kind" : "source.lang.swift.decl.enum", "key.length" : 538, - "key.line" : 83, + "key.line" : 88, "key.modulename" : "ListableUI", "key.name" : "KeyboardAdjustmentMode", "key.namelength" : 22, - "key.nameoffset" : 3233, - "key.offset" : 3228, + "key.nameoffset" : 3412, + "key.offset" : 3407, "key.parsed_declaration" : "public enum KeyboardAdjustmentMode : Equatable", - "key.parsed_scope.end" : 95, - "key.parsed_scope.start" : 83, + "key.parsed_scope.end" : 100, + "key.parsed_scope.start" : 88, "key.reusingastcontext" : false, "key.substructure" : [ { "key.kind" : "source.lang.swift.decl.enumcase", "key.length" : 9, - "key.offset" : 3382, + "key.offset" : 3561, "key.substructure" : [ { "key.accessibility" : "source.lang.swift.accessibility.public", @@ -2293,25 +2334,25 @@ "key.doc.comment" : "The `contentInset` of the list is not adjusted when the keyboard appears or disappears.", "key.doc.declaration" : "", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "none<\/Name>s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO4noneyA2EmF<\/USR><\/Declaration>The contentInset<\/codeVoice> of the list is not adjusted when the keyboard appears or disappears.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 86, + "key.doc.full_as_xml" : "none<\/Name>s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO4noneyA2EmF<\/USR><\/Declaration>The contentInset<\/codeVoice> of the list is not adjusted when the keyboard appears or disappears.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 91, "key.doc.name" : "none", "key.doc.type" : "Other", "key.doclength" : 92, - "key.docoffset" : 3282, + "key.docoffset" : 3461, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> none<\/decl.name><\/decl.enumelement>", "key.kind" : "source.lang.swift.decl.enumelement", "key.length" : 4, - "key.line" : 86, + "key.line" : 91, "key.modulename" : "ListableUI", "key.name" : "none", "key.namelength" : 4, - "key.nameoffset" : 3387, - "key.offset" : 3387, + "key.nameoffset" : 3566, + "key.offset" : 3566, "key.parsed_declaration" : "case none", - "key.parsed_scope.end" : 86, - "key.parsed_scope.start" : 86, + "key.parsed_scope.end" : 91, + "key.parsed_scope.start" : 91, "key.reusingastcontext" : false, "key.typename" : "(Behavior.KeyboardAdjustmentMode.Type) -> Behavior.KeyboardAdjustmentMode", "key.typeusr" : "$sy10ListableUI8BehaviorV22KeyboardAdjustmentModeOAEmcD", @@ -2322,7 +2363,7 @@ { "key.kind" : "source.lang.swift.decl.enumcase", "key.length" : 23, - "key.offset" : 3505, + "key.offset" : 3684, "key.substructure" : [ { "key.accessibility" : "source.lang.swift.accessibility.public", @@ -2333,25 +2374,25 @@ "key.doc.comment" : "The `contentInset` of the list is adjusted when the keyboard appears or disappears.", "key.doc.declaration" : "", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "adjustsWhenVisible<\/Name>s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO18adjustsWhenVisibleyA2EmF<\/USR><\/Declaration>The contentInset<\/codeVoice> of the list is adjusted when the keyboard appears or disappears.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 89, + "key.doc.full_as_xml" : "adjustsWhenVisible<\/Name>s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO18adjustsWhenVisibleyA2EmF<\/USR><\/Declaration>The contentInset<\/codeVoice> of the list is adjusted when the keyboard appears or disappears.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 94, "key.doc.name" : "adjustsWhenVisible", "key.doc.type" : "Other", "key.doclength" : 88, - "key.docoffset" : 3409, + "key.docoffset" : 3588, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> adjustsWhenVisible<\/decl.name><\/decl.enumelement>", "key.kind" : "source.lang.swift.decl.enumelement", "key.length" : 18, - "key.line" : 89, + "key.line" : 94, "key.modulename" : "ListableUI", "key.name" : "adjustsWhenVisible", "key.namelength" : 18, - "key.nameoffset" : 3510, - "key.offset" : 3510, + "key.nameoffset" : 3689, + "key.offset" : 3689, "key.parsed_declaration" : "case adjustsWhenVisible", - "key.parsed_scope.end" : 89, - "key.parsed_scope.start" : 89, + "key.parsed_scope.end" : 94, + "key.parsed_scope.start" : 94, "key.reusingastcontext" : false, "key.typename" : "(Behavior.KeyboardAdjustmentMode.Type) -> Behavior.KeyboardAdjustmentMode", "key.typeusr" : "$sy10ListableUI8BehaviorV22KeyboardAdjustmentModeOAEmcD", @@ -2362,7 +2403,7 @@ { "key.kind" : "source.lang.swift.decl.enumcase", "key.length" : 11, - "key.offset" : 3749, + "key.offset" : 3928, "key.substructure" : [ { "key.accessibility" : "source.lang.swift.accessibility.public", @@ -2373,25 +2414,25 @@ "key.doc.comment" : "Consumer calculates the edge insets and handles setting them\nvia the ``ListView\/customScrollViewInsets`` callback. Only use this option\nwhen managing the `ListView` directly.", "key.doc.declaration" : "", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "custom<\/Name>s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO6customyA2EmF<\/USR><\/Declaration>Consumer calculates the edge insets and handles setting them via the ListView\/customScrollViewInsets<\/codeVoice> callback. Only use this option when managing the ListView<\/codeVoice> directly.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 94, + "key.doc.full_as_xml" : "custom<\/Name>s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO6customyA2EmF<\/USR><\/Declaration>Consumer calculates the edge insets and handles setting them via the ListView\/customScrollViewInsets<\/codeVoice> callback. Only use this option when managing the ListView<\/codeVoice> directly.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 99, "key.doc.name" : "custom", "key.doc.type" : "Other", "key.doclength" : 203, - "key.docoffset" : 3538, + "key.docoffset" : 3717, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> custom<\/decl.name><\/decl.enumelement>", "key.kind" : "source.lang.swift.decl.enumelement", "key.length" : 6, - "key.line" : 94, + "key.line" : 99, "key.modulename" : "ListableUI", "key.name" : "custom", "key.namelength" : 6, - "key.nameoffset" : 3754, - "key.offset" : 3754, + "key.nameoffset" : 3933, + "key.offset" : 3933, "key.parsed_declaration" : "case custom", - "key.parsed_scope.end" : 94, - "key.parsed_scope.start" : 94, + "key.parsed_scope.end" : 99, + "key.parsed_scope.start" : 99, "key.reusingastcontext" : false, "key.typename" : "(Behavior.KeyboardAdjustmentMode.Type) -> Behavior.KeyboardAdjustmentMode", "key.typeusr" : "$sy10ListableUI8BehaviorV22KeyboardAdjustmentModeOAEmcD", @@ -2411,28 +2452,28 @@ { "key.attribute" : "source.decl.attribute.public", "key.length" : 6, - "key.offset" : 3859 + "key.offset" : 4038 } ], "key.bodylength" : 211, - "key.bodyoffset" : 3901, + "key.bodyoffset" : 4080, "key.column" : 17, "key.decl_lang" : "source.lang.swift", "key.doc.column" : 17, "key.doc.comment" : "How to react when the user taps on the status bar of the application.", "key.doc.declaration" : "public enum ScrollsToTop : Equatable", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "ScrollsToTop<\/Name>s:10ListableUI8BehaviorV12ScrollsToTopO<\/USR>public enum ScrollsToTop : Equatable<\/Declaration>How to react when the user taps on the status bar of the application.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 99, + "key.doc.full_as_xml" : "ScrollsToTop<\/Name>s:10ListableUI8BehaviorV12ScrollsToTopO<\/USR>public enum ScrollsToTop : Equatable<\/Declaration>How to react when the user taps on the status bar of the application.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 104, "key.doc.name" : "ScrollsToTop", "key.doc.type" : "Other", "key.doclength" : 74, - "key.docoffset" : 3781, + "key.docoffset" : 3960, "key.elements" : [ { "key.kind" : "source.lang.swift.structure.elem.typeref", "key.length" : 9, - "key.offset" : 3886 + "key.offset" : 4065 } ], "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", @@ -2444,21 +2485,21 @@ ], "key.kind" : "source.lang.swift.decl.enum", "key.length" : 247, - "key.line" : 99, + "key.line" : 104, "key.modulename" : "ListableUI", "key.name" : "ScrollsToTop", "key.namelength" : 12, - "key.nameoffset" : 3871, - "key.offset" : 3866, + "key.nameoffset" : 4050, + "key.offset" : 4045, "key.parsed_declaration" : "public enum ScrollsToTop : Equatable", - "key.parsed_scope.end" : 106, - "key.parsed_scope.start" : 99, + "key.parsed_scope.end" : 111, + "key.parsed_scope.start" : 104, "key.reusingastcontext" : false, "key.substructure" : [ { "key.kind" : "source.lang.swift.decl.enumcase", "key.length" : 13, - "key.offset" : 3983, + "key.offset" : 4162, "key.substructure" : [ { "key.accessibility" : "source.lang.swift.accessibility.public", @@ -2469,25 +2510,25 @@ "key.doc.comment" : "No action is performed when the user taps on the status bar.", "key.doc.declaration" : "", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "disabled<\/Name>s:10ListableUI8BehaviorV12ScrollsToTopO8disabledyA2EmF<\/USR><\/Declaration>No action is performed when the user taps on the status bar.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 102, + "key.doc.full_as_xml" : "disabled<\/Name>s:10ListableUI8BehaviorV12ScrollsToTopO8disabledyA2EmF<\/USR><\/Declaration>No action is performed when the user taps on the status bar.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 107, "key.doc.name" : "disabled", "key.doc.type" : "Other", "key.doclength" : 65, - "key.docoffset" : 3910, + "key.docoffset" : 4089, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> disabled<\/decl.name><\/decl.enumelement>", "key.kind" : "source.lang.swift.decl.enumelement", "key.length" : 8, - "key.line" : 102, + "key.line" : 107, "key.modulename" : "ListableUI", "key.name" : "disabled", "key.namelength" : 8, - "key.nameoffset" : 3988, - "key.offset" : 3988, + "key.nameoffset" : 4167, + "key.offset" : 4167, "key.parsed_declaration" : "case disabled", - "key.parsed_scope.end" : 102, - "key.parsed_scope.start" : 102, + "key.parsed_scope.end" : 107, + "key.parsed_scope.start" : 107, "key.reusingastcontext" : false, "key.typename" : "(Behavior.ScrollsToTop.Type) -> Behavior.ScrollsToTop", "key.typeusr" : "$sy10ListableUI8BehaviorV12ScrollsToTopOAEmcD", @@ -2498,7 +2539,7 @@ { "key.kind" : "source.lang.swift.decl.enumcase", "key.length" : 12, - "key.offset" : 4095, + "key.offset" : 4274, "key.substructure" : [ { "key.accessibility" : "source.lang.swift.accessibility.public", @@ -2509,25 +2550,25 @@ "key.doc.comment" : "When the user taps on the status bar, scroll to the top of the list.", "key.doc.declaration" : "", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "enabled<\/Name>s:10ListableUI8BehaviorV12ScrollsToTopO7enabledyA2EmF<\/USR><\/Declaration>When the user taps on the status bar, scroll to the top of the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 105, + "key.doc.full_as_xml" : "enabled<\/Name>s:10ListableUI8BehaviorV12ScrollsToTopO7enabledyA2EmF<\/USR><\/Declaration>When the user taps on the status bar, scroll to the top of the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 110, "key.doc.name" : "enabled", "key.doc.type" : "Other", "key.doclength" : 73, - "key.docoffset" : 4014, + "key.docoffset" : 4193, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> enabled<\/decl.name><\/decl.enumelement>", "key.kind" : "source.lang.swift.decl.enumelement", "key.length" : 7, - "key.line" : 105, + "key.line" : 110, "key.modulename" : "ListableUI", "key.name" : "enabled", "key.namelength" : 7, - "key.nameoffset" : 4100, - "key.offset" : 4100, + "key.nameoffset" : 4279, + "key.offset" : 4279, "key.parsed_declaration" : "case enabled", - "key.parsed_scope.end" : 105, - "key.parsed_scope.start" : 105, + "key.parsed_scope.end" : 110, + "key.parsed_scope.start" : 110, "key.reusingastcontext" : false, "key.typename" : "(Behavior.ScrollsToTop.Type) -> Behavior.ScrollsToTop", "key.typeusr" : "$sy10ListableUI8BehaviorV12ScrollsToTopOAEmcD", @@ -2547,42 +2588,42 @@ { "key.attribute" : "source.decl.attribute.public", "key.length" : 6, - "key.offset" : 4169 + "key.offset" : 4348 } ], "key.bodylength" : 44, - "key.bodyoffset" : 4203, + "key.bodyoffset" : 4382, "key.column" : 17, "key.decl_lang" : "source.lang.swift", "key.doc.column" : 17, "key.doc.comment" : "The rate at which scrolling decelerates.", "key.doc.declaration" : "public enum DecelerationRate", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "DecelerationRate<\/Name>s:10ListableUI8BehaviorV16DecelerationRateO<\/USR>public enum DecelerationRate<\/Declaration>The rate at which scrolling decelerates.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 110, + "key.doc.full_as_xml" : "DecelerationRate<\/Name>s:10ListableUI8BehaviorV16DecelerationRateO<\/USR>public enum DecelerationRate<\/Declaration>The rate at which scrolling decelerates.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 115, "key.doc.name" : "DecelerationRate", "key.doc.type" : "Other", "key.doclength" : 45, - "key.docoffset" : 4120, + "key.docoffset" : 4299, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> DecelerationRate<\/decl.name><\/decl.enum>", "key.kind" : "source.lang.swift.decl.enum", "key.length" : 72, - "key.line" : 110, + "key.line" : 115, "key.modulename" : "ListableUI", "key.name" : "DecelerationRate", "key.namelength" : 16, - "key.nameoffset" : 4181, - "key.offset" : 4176, + "key.nameoffset" : 4360, + "key.offset" : 4355, "key.parsed_declaration" : "public enum DecelerationRate", - "key.parsed_scope.end" : 115, - "key.parsed_scope.start" : 110, + "key.parsed_scope.end" : 120, + "key.parsed_scope.start" : 115, "key.reusingastcontext" : false, "key.substructure" : [ { "key.kind" : "source.lang.swift.decl.enumcase", "key.length" : 11, - "key.offset" : 4212, + "key.offset" : 4391, "key.substructure" : [ { "key.accessibility" : "source.lang.swift.accessibility.public", @@ -2593,15 +2634,15 @@ "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> normal<\/decl.name><\/decl.enumelement>", "key.kind" : "source.lang.swift.decl.enumelement", "key.length" : 6, - "key.line" : 112, + "key.line" : 117, "key.modulename" : "ListableUI", "key.name" : "normal", "key.namelength" : 6, - "key.nameoffset" : 4217, - "key.offset" : 4217, + "key.nameoffset" : 4396, + "key.offset" : 4396, "key.parsed_declaration" : "case normal", - "key.parsed_scope.end" : 112, - "key.parsed_scope.start" : 112, + "key.parsed_scope.end" : 117, + "key.parsed_scope.start" : 117, "key.reusingastcontext" : false, "key.typename" : "(Behavior.DecelerationRate.Type) -> Behavior.DecelerationRate", "key.typeusr" : "$sy10ListableUI8BehaviorV16DecelerationRateOAEmcD", @@ -2612,7 +2653,7 @@ { "key.kind" : "source.lang.swift.decl.enumcase", "key.length" : 9, - "key.offset" : 4233, + "key.offset" : 4412, "key.substructure" : [ { "key.accessibility" : "source.lang.swift.accessibility.public", @@ -2623,15 +2664,15 @@ "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> fast<\/decl.name><\/decl.enumelement>", "key.kind" : "source.lang.swift.decl.enumelement", "key.length" : 4, - "key.line" : 114, + "key.line" : 119, "key.modulename" : "ListableUI", "key.name" : "fast", "key.namelength" : 4, - "key.nameoffset" : 4238, - "key.offset" : 4238, + "key.nameoffset" : 4417, + "key.offset" : 4417, "key.parsed_declaration" : "case fast", - "key.parsed_scope.end" : 114, - "key.parsed_scope.start" : 114, + "key.parsed_scope.end" : 119, + "key.parsed_scope.start" : 119, "key.reusingastcontext" : false, "key.typename" : "(Behavior.DecelerationRate.Type) -> Behavior.DecelerationRate", "key.typeusr" : "$sy10ListableUI8BehaviorV16DecelerationRateOAEmcD", @@ -2651,28 +2692,28 @@ { "key.attribute" : "source.decl.attribute.public", "key.length" : 6, - "key.offset" : 4368 + "key.offset" : 4547 } ], "key.bodylength" : 630, - "key.bodyoffset" : 4411, + "key.bodyoffset" : 4590, "key.column" : 17, "key.decl_lang" : "source.lang.swift", "key.doc.column" : 17, "key.doc.comment" : "The selection mode of the list view, which controls how many items (if any) can be selected at once.", "key.doc.declaration" : "public enum SelectionMode : Equatable", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "SelectionMode<\/Name>s:10ListableUI8BehaviorV13SelectionModeO<\/USR>public enum SelectionMode : Equatable<\/Declaration>The selection mode of the list view, which controls how many items (if any) can be selected at once.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 119, + "key.doc.full_as_xml" : "SelectionMode<\/Name>s:10ListableUI8BehaviorV13SelectionModeO<\/USR>public enum SelectionMode : Equatable<\/Declaration>The selection mode of the list view, which controls how many items (if any) can be selected at once.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 124, "key.doc.name" : "SelectionMode", "key.doc.type" : "Other", "key.doclength" : 105, - "key.docoffset" : 4259, + "key.docoffset" : 4438, "key.elements" : [ { "key.kind" : "source.lang.swift.structure.elem.typeref", "key.length" : 9, - "key.offset" : 4396 + "key.offset" : 4575 } ], "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", @@ -2684,21 +2725,21 @@ ], "key.kind" : "source.lang.swift.decl.enum", "key.length" : 667, - "key.line" : 119, + "key.line" : 124, "key.modulename" : "ListableUI", "key.name" : "SelectionMode", "key.namelength" : 13, - "key.nameoffset" : 4380, - "key.offset" : 4375, + "key.nameoffset" : 4559, + "key.offset" : 4554, "key.parsed_declaration" : "public enum SelectionMode : Equatable", - "key.parsed_scope.end" : 132, - "key.parsed_scope.start" : 119, + "key.parsed_scope.end" : 137, + "key.parsed_scope.start" : 124, "key.reusingastcontext" : false, "key.substructure" : [ { "key.kind" : "source.lang.swift.decl.enumcase", "key.length" : 9, - "key.offset" : 4477, + "key.offset" : 4656, "key.substructure" : [ { "key.accessibility" : "source.lang.swift.accessibility.public", @@ -2709,25 +2750,25 @@ "key.doc.comment" : "The list view does not allow any selections.", "key.doc.declaration" : "", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "none<\/Name>s:10ListableUI8BehaviorV13SelectionModeO4noneyA2EmF<\/USR><\/Declaration>The list view does not allow any selections.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 122, + "key.doc.full_as_xml" : "none<\/Name>s:10ListableUI8BehaviorV13SelectionModeO4noneyA2EmF<\/USR><\/Declaration>The list view does not allow any selections.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 127, "key.doc.name" : "none", "key.doc.type" : "Other", "key.doclength" : 49, - "key.docoffset" : 4420, + "key.docoffset" : 4599, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> none<\/decl.name><\/decl.enumelement>", "key.kind" : "source.lang.swift.decl.enumelement", "key.length" : 4, - "key.line" : 122, + "key.line" : 127, "key.modulename" : "ListableUI", "key.name" : "none", "key.namelength" : 4, - "key.nameoffset" : 4482, - "key.offset" : 4482, + "key.nameoffset" : 4661, + "key.offset" : 4661, "key.parsed_declaration" : "case none", - "key.parsed_scope.end" : 122, - "key.parsed_scope.start" : 122, + "key.parsed_scope.end" : 127, + "key.parsed_scope.start" : 127, "key.reusingastcontext" : false, "key.typename" : "(Behavior.SelectionMode.Type) -> Behavior.SelectionMode", "key.typeusr" : "$sy10ListableUI8BehaviorV13SelectionModeOAEmcD", @@ -2738,7 +2779,7 @@ { "key.kind" : "source.lang.swift.decl.enumcase", "key.length" : 11, - "key.offset" : 4800, + "key.offset" : 4979, "key.substructure" : [ { "key.accessibility" : "source.lang.swift.accessibility.public", @@ -2749,25 +2790,25 @@ "key.doc.comment" : "The list view allows single selections. When an item is selected, the previously selected item (if any)\nwill be deselected by the list. If you provide multiple selected items in your content description,\nthe last selected item in the content will be selected.", "key.doc.declaration" : "", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "single<\/Name>s:10ListableUI8BehaviorV13SelectionModeO6singleyA2EmF<\/USR><\/Declaration>The list view allows single selections. When an item is selected, the previously selected item (if any) will be deselected by the list. If you provide multiple selected items in your content description, the last selected item in the content will be selected.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 127, + "key.doc.full_as_xml" : "single<\/Name>s:10ListableUI8BehaviorV13SelectionModeO6singleyA2EmF<\/USR><\/Declaration>The list view allows single selections. When an item is selected, the previously selected item (if any) will be deselected by the list. If you provide multiple selected items in your content description, the last selected item in the content will be selected.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 132, "key.doc.name" : "single", "key.doc.type" : "Other", "key.doclength" : 288, - "key.docoffset" : 4504, + "key.docoffset" : 4683, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> single<\/decl.name><\/decl.enumelement>", "key.kind" : "source.lang.swift.decl.enumelement", "key.length" : 6, - "key.line" : 127, + "key.line" : 132, "key.modulename" : "ListableUI", "key.name" : "single", "key.namelength" : 6, - "key.nameoffset" : 4805, - "key.offset" : 4805, + "key.nameoffset" : 4984, + "key.offset" : 4984, "key.parsed_declaration" : "case single", - "key.parsed_scope.end" : 127, - "key.parsed_scope.start" : 127, + "key.parsed_scope.end" : 132, + "key.parsed_scope.start" : 132, "key.reusingastcontext" : false, "key.typename" : "(Behavior.SelectionMode.Type) -> Behavior.SelectionMode", "key.typeusr" : "$sy10ListableUI8BehaviorV13SelectionModeOAEmcD", @@ -2778,7 +2819,7 @@ { "key.kind" : "source.lang.swift.decl.enumcase", "key.length" : 13, - "key.offset" : 5023, + "key.offset" : 5202, "key.substructure" : [ { "key.accessibility" : "source.lang.swift.accessibility.public", @@ -2789,25 +2830,25 @@ "key.doc.comment" : "The list view allows multiple selections. It is your responsibility to update the content\nof the list to select and deselect items based on the selection of other items.", "key.doc.declaration" : "", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "multiple<\/Name>s:10ListableUI8BehaviorV13SelectionModeO8multipleyA2EmF<\/USR><\/Declaration>The list view allows multiple selections. It is your responsibility to update the content of the list to select and deselect items based on the selection of other items.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 131, + "key.doc.full_as_xml" : "multiple<\/Name>s:10ListableUI8BehaviorV13SelectionModeO8multipleyA2EmF<\/USR><\/Declaration>The list view allows multiple selections. It is your responsibility to update the content of the list to select and deselect items based on the selection of other items.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 136, "key.doc.name" : "multiple", "key.doc.type" : "Other", "key.doclength" : 186, - "key.docoffset" : 4829, + "key.docoffset" : 5008, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> multiple<\/decl.name><\/decl.enumelement>", "key.kind" : "source.lang.swift.decl.enumelement", "key.length" : 8, - "key.line" : 131, + "key.line" : 136, "key.modulename" : "ListableUI", "key.name" : "multiple", "key.namelength" : 8, - "key.nameoffset" : 5028, - "key.offset" : 5028, + "key.nameoffset" : 5207, + "key.offset" : 5207, "key.parsed_declaration" : "case multiple", - "key.parsed_scope.end" : 131, - "key.parsed_scope.start" : 131, + "key.parsed_scope.end" : 136, + "key.parsed_scope.start" : 136, "key.reusingastcontext" : false, "key.typename" : "(Behavior.SelectionMode.Type) -> Behavior.SelectionMode", "key.typeusr" : "$sy10ListableUI8BehaviorV13SelectionModeOAEmcD", @@ -2827,28 +2868,28 @@ { "key.attribute" : "source.decl.attribute.public", "key.length" : 6, - "key.offset" : 5219 + "key.offset" : 5398 } ], "key.bodylength" : 1569, - "key.bodyoffset" : 5260, + "key.bodyoffset" : 5439, "key.column" : 19, "key.decl_lang" : "source.lang.swift", "key.doc.column" : 19, "key.doc.comment" : "When the content of the list takes up less space than the list itself (aka, an underflow), how\nthe layout of the list content should be adjusted.", "key.doc.declaration" : "public struct Underflow : Equatable", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "Underflow<\/Name>s:10ListableUI8BehaviorV9UnderflowV<\/USR>public struct Underflow : Equatable<\/Declaration>When the content of the list takes up less space than the list itself (aka, an underflow), how the layout of the list content should be adjusted.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 137, + "key.doc.full_as_xml" : "Underflow<\/Name>s:10ListableUI8BehaviorV9UnderflowV<\/USR>public struct Underflow : Equatable<\/Declaration>When the content of the list takes up less space than the list itself (aka, an underflow), how the layout of the list content should be adjusted.<\/Para><\/Abstract><\/CommentParts><\/Class>", + "key.doc.line" : 142, "key.doc.name" : "Underflow", "key.doc.type" : "Class", "key.doclength" : 158, - "key.docoffset" : 5057, + "key.docoffset" : 5236, "key.elements" : [ { "key.kind" : "source.lang.swift.structure.elem.typeref", "key.length" : 9, - "key.offset" : 5245 + "key.offset" : 5424 } ], "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", @@ -2860,15 +2901,15 @@ ], "key.kind" : "source.lang.swift.decl.struct", "key.length" : 1604, - "key.line" : 137, + "key.line" : 142, "key.modulename" : "ListableUI", "key.name" : "Underflow", "key.namelength" : 9, - "key.nameoffset" : 5233, - "key.offset" : 5226, + "key.nameoffset" : 5412, + "key.offset" : 5405, "key.parsed_declaration" : "public struct Underflow : Equatable", - "key.parsed_scope.end" : 180, - "key.parsed_scope.start" : 137, + "key.parsed_scope.end" : 185, + "key.parsed_scope.start" : 142, "key.reusingastcontext" : false, "key.substructure" : [ { @@ -2878,7 +2919,7 @@ { "key.attribute" : "source.decl.attribute.public", "key.length" : 6, - "key.offset" : 5391 + "key.offset" : 5570 } ], "key.column" : 20, @@ -2887,25 +2928,25 @@ "key.doc.comment" : "Is bouncing (aka rubber banding) enabled, even if the content is shorter than the scrolling axis of the list?", "key.doc.declaration" : "public var alwaysBounce: Bool", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "alwaysBounce<\/Name>s:10ListableUI8BehaviorV9UnderflowV12alwaysBounceSbvp<\/USR>public var alwaysBounce: Bool<\/Declaration>Is bouncing (aka rubber banding) enabled, even if the content is shorter than the scrolling axis of the list?<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 140, + "key.doc.full_as_xml" : "alwaysBounce<\/Name>s:10ListableUI8BehaviorV9UnderflowV12alwaysBounceSbvp<\/USR>public var alwaysBounce: Bool<\/Declaration>Is bouncing (aka rubber banding) enabled, even if the content is shorter than the scrolling axis of the list?<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 145, "key.doc.name" : "alwaysBounce", "key.doc.type" : "Other", "key.doclength" : 114, - "key.docoffset" : 5269, + "key.docoffset" : 5448, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> alwaysBounce<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", "key.kind" : "source.lang.swift.decl.var.instance", "key.length" : 23, - "key.line" : 140, + "key.line" : 145, "key.modulename" : "ListableUI", "key.name" : "alwaysBounce", "key.namelength" : 12, - "key.nameoffset" : 5402, - "key.offset" : 5398, + "key.nameoffset" : 5581, + "key.offset" : 5577, "key.parsed_declaration" : "public var alwaysBounce : Bool", - "key.parsed_scope.end" : 140, - "key.parsed_scope.start" : 140, + "key.parsed_scope.end" : 145, + "key.parsed_scope.start" : 145, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.public", "key.typename" : "Bool", @@ -2919,7 +2960,7 @@ { "key.attribute" : "source.decl.attribute.public", "key.length" : 6, - "key.offset" : 5494 + "key.offset" : 5673 } ], "key.column" : 20, @@ -2928,25 +2969,25 @@ "key.doc.comment" : "How to align the content during underflow.", "key.doc.declaration" : "public var alignment: Alignment", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "alignment<\/Name>s:10ListableUI8BehaviorV9UnderflowV9alignmentAE9AlignmentOvp<\/USR>public var alignment: Alignment<\/Declaration>How to align the content during underflow.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 143, + "key.doc.full_as_xml" : "alignment<\/Name>s:10ListableUI8BehaviorV9UnderflowV9alignmentAE9AlignmentOvp<\/USR>public var alignment: Alignment<\/Declaration>How to align the content during underflow.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 148, "key.doc.name" : "alignment", "key.doc.type" : "Other", "key.doclength" : 47, - "key.docoffset" : 5439, + "key.docoffset" : 5618, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> alignment<\/decl.name>: Alignment<\/ref.enum><\/decl.var.type><\/decl.var.instance>", "key.kind" : "source.lang.swift.decl.var.instance", "key.length" : 25, - "key.line" : 143, + "key.line" : 148, "key.modulename" : "ListableUI", "key.name" : "alignment", "key.namelength" : 9, - "key.nameoffset" : 5505, - "key.offset" : 5501, + "key.nameoffset" : 5684, + "key.offset" : 5680, "key.parsed_declaration" : "public var alignment : Alignment", - "key.parsed_scope.end" : 143, - "key.parsed_scope.start" : 143, + "key.parsed_scope.end" : 148, + "key.parsed_scope.start" : 148, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.public", "key.typename" : "Behavior.Underflow.Alignment", @@ -2960,36 +3001,36 @@ { "key.attribute" : "source.decl.attribute.public", "key.length" : 6, - "key.offset" : 5609 + "key.offset" : 5788 } ], "key.bodylength" : 93, - "key.bodyoffset" : 5714, + "key.bodyoffset" : 5893, "key.column" : 16, "key.decl_lang" : "source.lang.swift", "key.doc.column" : 16, "key.doc.comment" : "Creates a new instance with the provided parameters.", "key.doc.declaration" : "public init(alwaysBounce: Bool = true, alignment: Alignment = .top)", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "init(alwaysBounce:alignment:)<\/Name>s:10ListableUI8BehaviorV9UnderflowV12alwaysBounce9alignmentAESb_AE9AlignmentOtcfc<\/USR>public init(alwaysBounce: Bool = true, alignment: Alignment = .top)<\/Declaration>Creates a new instance with the provided parameters.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 146, + "key.doc.full_as_xml" : "init(alwaysBounce:alignment:)<\/Name>s:10ListableUI8BehaviorV9UnderflowV12alwaysBounce9alignmentAESb_AE9AlignmentOtcfc<\/USR>public init(alwaysBounce: Bool = true, alignment: Alignment = .top)<\/Declaration>Creates a new instance with the provided parameters.<\/Para><\/Abstract><\/CommentParts><\/Function>", + "key.doc.line" : 151, "key.doc.name" : "init(alwaysBounce:alignment:)", "key.doc.type" : "Function", "key.doclength" : 57, - "key.docoffset" : 5544, + "key.docoffset" : 5723, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(alwaysBounce<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = true<\/decl.var.parameter>, alignment<\/decl.var.parameter.argument_label>: Alignment<\/ref.enum><\/decl.var.parameter.type> = .top<\/decl.var.parameter>)<\/decl.function.constructor>", "key.kind" : "source.lang.swift.decl.function.method.instance", "key.length" : 192, - "key.line" : 146, + "key.line" : 151, "key.modulename" : "ListableUI", "key.name" : "init(alwaysBounce:alignment:)", "key.namelength" : 96, - "key.nameoffset" : 5616, - "key.offset" : 5616, + "key.nameoffset" : 5795, + "key.offset" : 5795, "key.parsed_declaration" : "public init(\n alwaysBounce : Bool = true,\n alignment : Alignment = .top\n)", - "key.parsed_scope.end" : 152, - "key.parsed_scope.start" : 146, + "key.parsed_scope.end" : 157, + "key.parsed_scope.start" : 151, "key.reusingastcontext" : false, "key.substructure" : [ @@ -3005,28 +3046,28 @@ { "key.attribute" : "source.decl.attribute.public", "key.length" : 6, - "key.offset" : 5968 + "key.offset" : 6147 } ], "key.bodylength" : 812, - "key.bodyoffset" : 6011, + "key.bodyoffset" : 6190, "key.column" : 21, "key.decl_lang" : "source.lang.swift", "key.doc.column" : 21, "key.doc.comment" : "When the content takes up less space than allotted to the list,\nhow should said content be aligned within that space.", "key.doc.declaration" : "public enum ListableUI.Behavior.Underflow.Alignment : Equatable", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "Alignment<\/Name>s:10ListableUI8BehaviorV9UnderflowV9AlignmentO<\/USR>public enum ListableUI.Behavior.Underflow.Alignment : Equatable<\/Declaration>When the content takes up less space than allotted to the list, how should said content be aligned within that space.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 156, + "key.doc.full_as_xml" : "Alignment<\/Name>s:10ListableUI8BehaviorV9UnderflowV9AlignmentO<\/USR>public enum ListableUI.Behavior.Underflow.Alignment : Equatable<\/Declaration>When the content takes up less space than allotted to the list, how should said content be aligned within that space.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 161, "key.doc.name" : "Alignment", "key.doc.type" : "Other", "key.doclength" : 134, - "key.docoffset" : 5826, + "key.docoffset" : 6005, "key.elements" : [ { "key.kind" : "source.lang.swift.structure.elem.typeref", "key.length" : 9, - "key.offset" : 5992 + "key.offset" : 6171 } ], "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", @@ -3038,21 +3079,21 @@ ], "key.kind" : "source.lang.swift.decl.enum", "key.length" : 849, - "key.line" : 156, + "key.line" : 161, "key.modulename" : "ListableUI", "key.name" : "Alignment", "key.namelength" : 9, - "key.nameoffset" : 5980, - "key.offset" : 5975, + "key.nameoffset" : 6159, + "key.offset" : 6154, "key.parsed_declaration" : "public enum Alignment : Equatable", - "key.parsed_scope.end" : 179, - "key.parsed_scope.start" : 156, + "key.parsed_scope.end" : 184, + "key.parsed_scope.start" : 161, "key.reusingastcontext" : false, "key.substructure" : [ { "key.kind" : "source.lang.swift.decl.enumcase", "key.length" : 8, - "key.offset" : 6134, + "key.offset" : 6313, "key.substructure" : [ { "key.accessibility" : "source.lang.swift.accessibility.public", @@ -3063,25 +3104,25 @@ "key.doc.comment" : "The content is aligned to the top of the list. This is the default and is generally standard.", "key.doc.declaration" : "", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "top<\/Name>s:10ListableUI8BehaviorV9UnderflowV9AlignmentO3topyA2GmF<\/USR><\/Declaration>The content is aligned to the top of the list. This is the default and is generally standard.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 159, + "key.doc.full_as_xml" : "top<\/Name>s:10ListableUI8BehaviorV9UnderflowV9AlignmentO3topyA2GmF<\/USR><\/Declaration>The content is aligned to the top of the list. This is the default and is generally standard.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 164, "key.doc.name" : "top", "key.doc.type" : "Other", "key.doclength" : 98, - "key.docoffset" : 6024, + "key.docoffset" : 6203, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> top<\/decl.name><\/decl.enumelement>", "key.kind" : "source.lang.swift.decl.enumelement", "key.length" : 3, - "key.line" : 159, + "key.line" : 164, "key.modulename" : "ListableUI", "key.name" : "top", "key.namelength" : 3, - "key.nameoffset" : 6139, - "key.offset" : 6139, + "key.nameoffset" : 6318, + "key.offset" : 6318, "key.parsed_declaration" : "case top", - "key.parsed_scope.end" : 159, - "key.parsed_scope.start" : 159, + "key.parsed_scope.end" : 164, + "key.parsed_scope.start" : 164, "key.reusingastcontext" : false, "key.typename" : "(Behavior.Underflow.Alignment.Type) -> Behavior.Underflow.Alignment", "key.typeusr" : "$sy10ListableUI8BehaviorV9UnderflowV9AlignmentOAGmcD", @@ -3092,7 +3133,7 @@ { "key.kind" : "source.lang.swift.decl.enumcase", "key.length" : 11, - "key.offset" : 6236, + "key.offset" : 6415, "key.substructure" : [ { "key.accessibility" : "source.lang.swift.accessibility.public", @@ -3103,25 +3144,25 @@ "key.doc.comment" : "The content is centered within the available space.", "key.doc.declaration" : "", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "center<\/Name>s:10ListableUI8BehaviorV9UnderflowV9AlignmentO6centeryA2GmF<\/USR><\/Declaration>The content is centered within the available space.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 162, + "key.doc.full_as_xml" : "center<\/Name>s:10ListableUI8BehaviorV9UnderflowV9AlignmentO6centeryA2GmF<\/USR><\/Declaration>The content is centered within the available space.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 167, "key.doc.name" : "center", "key.doc.type" : "Other", "key.doclength" : 56, - "key.docoffset" : 6168, + "key.docoffset" : 6347, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> center<\/decl.name><\/decl.enumelement>", "key.kind" : "source.lang.swift.decl.enumelement", "key.length" : 6, - "key.line" : 162, + "key.line" : 167, "key.modulename" : "ListableUI", "key.name" : "center", "key.namelength" : 6, - "key.nameoffset" : 6241, - "key.offset" : 6241, + "key.nameoffset" : 6420, + "key.offset" : 6420, "key.parsed_declaration" : "case center", - "key.parsed_scope.end" : 162, - "key.parsed_scope.start" : 162, + "key.parsed_scope.end" : 167, + "key.parsed_scope.start" : 167, "key.reusingastcontext" : false, "key.typename" : "(Behavior.Underflow.Alignment.Type) -> Behavior.Underflow.Alignment", "key.typeusr" : "$sy10ListableUI8BehaviorV9UnderflowV9AlignmentOAGmcD", @@ -3132,7 +3173,7 @@ { "key.kind" : "source.lang.swift.decl.enumcase", "key.length" : 11, - "key.offset" : 6327, + "key.offset" : 6506, "key.substructure" : [ { "key.accessibility" : "source.lang.swift.accessibility.public", @@ -3143,25 +3184,25 @@ "key.doc.comment" : "The content is aligned to the bottom.", "key.doc.declaration" : "", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "bottom<\/Name>s:10ListableUI8BehaviorV9UnderflowV9AlignmentO6bottomyA2GmF<\/USR><\/Declaration>The content is aligned to the bottom.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 165, + "key.doc.full_as_xml" : "bottom<\/Name>s:10ListableUI8BehaviorV9UnderflowV9AlignmentO6bottomyA2GmF<\/USR><\/Declaration>The content is aligned to the bottom.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 170, "key.doc.name" : "bottom", "key.doc.type" : "Other", "key.doclength" : 42, - "key.docoffset" : 6273, + "key.docoffset" : 6452, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> bottom<\/decl.name><\/decl.enumelement>", "key.kind" : "source.lang.swift.decl.enumelement", "key.length" : 6, - "key.line" : 165, + "key.line" : 170, "key.modulename" : "ListableUI", "key.name" : "bottom", "key.namelength" : 6, - "key.nameoffset" : 6332, - "key.offset" : 6332, + "key.nameoffset" : 6511, + "key.offset" : 6511, "key.parsed_declaration" : "case bottom", - "key.parsed_scope.end" : 165, - "key.parsed_scope.start" : 165, + "key.parsed_scope.end" : 170, + "key.parsed_scope.start" : 170, "key.reusingastcontext" : false, "key.typename" : "(Behavior.Underflow.Alignment.Type) -> Behavior.Underflow.Alignment", "key.typeusr" : "$sy10ListableUI8BehaviorV9UnderflowV9AlignmentOAGmcD", @@ -3173,22 +3214,22 @@ "key.accessibility" : "source.lang.swift.accessibility.internal", "key.annotated_decl" : "func offsetFor(contentHeight: CGFloat<\/Type>, viewHeight: CGFloat<\/Type>) -> CGFloat<\/Type><\/Declaration>", "key.bodylength" : 364, - "key.bodyoffset" : 6449, + "key.bodyoffset" : 6628, "key.column" : 18, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> offsetFor<\/decl.name>(contentHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, viewHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", "key.kind" : "source.lang.swift.decl.function.method.instance", "key.length" : 450, - "key.line" : 167, + "key.line" : 172, "key.modulename" : "ListableUI", "key.name" : "offsetFor(contentHeight:viewHeight:)", "key.namelength" : 55, - "key.nameoffset" : 6369, - "key.offset" : 6364, + "key.nameoffset" : 6548, + "key.offset" : 6543, "key.parsed_declaration" : "func offsetFor(contentHeight : CGFloat, viewHeight: CGFloat) -> CGFloat", - "key.parsed_scope.end" : 178, - "key.parsed_scope.start" : 167, + "key.parsed_scope.end" : 183, + "key.parsed_scope.start" : 172, "key.reusingastcontext" : false, "key.substructure" : [ @@ -3214,42 +3255,42 @@ { "key.attribute" : "source.decl.attribute.public", "key.length" : 6, - "key.offset" : 7019 + "key.offset" : 7198 } ], "key.bodylength" : 379, - "key.bodyoffset" : 7054, + "key.bodyoffset" : 7233, "key.column" : 17, "key.decl_lang" : "source.lang.swift", "key.doc.column" : 17, "key.doc.comment" : "Applicable when the `layoutDirection` is `vertical`. The gravity determines\nhow inserting new elements or changing the `contentInset` affects the scroll position.", "key.doc.declaration" : "public enum VerticalLayoutGravity", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "VerticalLayoutGravity<\/Name>s:10ListableUI8BehaviorV21VerticalLayoutGravityO<\/USR>public enum VerticalLayoutGravity<\/Declaration>Applicable when the layoutDirection<\/codeVoice> is vertical<\/codeVoice>. The gravity determines how inserting new elements or changing the contentInset<\/codeVoice> affects the scroll position.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 184, + "key.doc.full_as_xml" : "VerticalLayoutGravity<\/Name>s:10ListableUI8BehaviorV21VerticalLayoutGravityO<\/USR>public enum VerticalLayoutGravity<\/Declaration>Applicable when the layoutDirection<\/codeVoice> is vertical<\/codeVoice>. The gravity determines how inserting new elements or changing the contentInset<\/codeVoice> affects the scroll position.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 189, "key.doc.name" : "VerticalLayoutGravity", "key.doc.type" : "Other", "key.doclength" : 175, - "key.docoffset" : 6840, + "key.docoffset" : 7019, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> VerticalLayoutGravity<\/decl.name><\/decl.enum>", "key.kind" : "source.lang.swift.decl.enum", "key.length" : 408, - "key.line" : 184, + "key.line" : 189, "key.modulename" : "ListableUI", "key.name" : "VerticalLayoutGravity", "key.namelength" : 21, - "key.nameoffset" : 7031, - "key.offset" : 7026, + "key.nameoffset" : 7210, + "key.offset" : 7205, "key.parsed_declaration" : "public enum VerticalLayoutGravity", - "key.parsed_scope.end" : 192, - "key.parsed_scope.start" : 184, + "key.parsed_scope.end" : 197, + "key.parsed_scope.start" : 189, "key.reusingastcontext" : false, "key.substructure" : [ { "key.kind" : "source.lang.swift.decl.enumcase", "key.length" : 8, - "key.offset" : 7210, + "key.offset" : 7389, "key.substructure" : [ { "key.accessibility" : "source.lang.swift.accessibility.public", @@ -3260,25 +3301,25 @@ "key.doc.comment" : "This is how a scroll view normally behaves.\nWhen a new element is inserted, the scroll distance from the top is unchanged.", "key.doc.declaration" : "", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "top<\/Name>s:10ListableUI8BehaviorV21VerticalLayoutGravityO3topyA2EmF<\/USR><\/Declaration>This is how a scroll view normally behaves. When a new element is inserted, the scroll distance from the top is unchanged.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 187, + "key.doc.full_as_xml" : "top<\/Name>s:10ListableUI8BehaviorV21VerticalLayoutGravityO3topyA2EmF<\/USR><\/Declaration>This is how a scroll view normally behaves. When a new element is inserted, the scroll distance from the top is unchanged.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 192, "key.doc.name" : "top", "key.doc.type" : "Other", "key.doclength" : 139, - "key.docoffset" : 7063, + "key.docoffset" : 7242, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> top<\/decl.name><\/decl.enumelement>", "key.kind" : "source.lang.swift.decl.enumelement", "key.length" : 3, - "key.line" : 187, + "key.line" : 192, "key.modulename" : "ListableUI", "key.name" : "top", "key.namelength" : 3, - "key.nameoffset" : 7215, - "key.offset" : 7215, + "key.nameoffset" : 7394, + "key.offset" : 7394, "key.parsed_declaration" : "case top", - "key.parsed_scope.end" : 187, - "key.parsed_scope.start" : 187, + "key.parsed_scope.end" : 192, + "key.parsed_scope.start" : 192, "key.reusingastcontext" : false, "key.typename" : "(Behavior.VerticalLayoutGravity.Type) -> Behavior.VerticalLayoutGravity", "key.typeusr" : "$sy10ListableUI8BehaviorV21VerticalLayoutGravityOAEmcD", @@ -3289,7 +3330,7 @@ { "key.kind" : "source.lang.swift.decl.enumcase", "key.length" : 11, - "key.offset" : 7417, + "key.offset" : 7596, "key.substructure" : [ { "key.accessibility" : "source.lang.swift.accessibility.public", @@ -3300,25 +3341,25 @@ "key.doc.comment" : "Intended for cases where the default scroll position is scrolled all the way down.\nWhen a new element is inserted, the scroll distance from the bottom is unchanged.", "key.doc.declaration" : "", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "bottom<\/Name>s:10ListableUI8BehaviorV21VerticalLayoutGravityO6bottomyA2EmF<\/USR><\/Declaration>Intended for cases where the default scroll position is scrolled all the way down. When a new element is inserted, the scroll distance from the bottom is unchanged.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 191, + "key.doc.full_as_xml" : "bottom<\/Name>s:10ListableUI8BehaviorV21VerticalLayoutGravityO6bottomyA2EmF<\/USR><\/Declaration>Intended for cases where the default scroll position is scrolled all the way down. When a new element is inserted, the scroll distance from the bottom is unchanged.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 196, "key.doc.name" : "bottom", "key.doc.type" : "Other", "key.doclength" : 181, - "key.docoffset" : 7228, + "key.docoffset" : 7407, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> bottom<\/decl.name><\/decl.enumelement>", "key.kind" : "source.lang.swift.decl.enumelement", "key.length" : 6, - "key.line" : 191, + "key.line" : 196, "key.modulename" : "ListableUI", "key.name" : "bottom", "key.namelength" : 6, - "key.nameoffset" : 7422, - "key.offset" : 7422, + "key.nameoffset" : 7601, + "key.offset" : 7601, "key.parsed_declaration" : "case bottom", - "key.parsed_scope.end" : 191, - "key.parsed_scope.start" : 191, + "key.parsed_scope.end" : 196, + "key.parsed_scope.start" : 196, "key.reusingastcontext" : false, "key.typename" : "(Behavior.VerticalLayoutGravity.Type) -> Behavior.VerticalLayoutGravity", "key.typeusr" : "$sy10ListableUI8BehaviorV21VerticalLayoutGravityOAEmcD", @@ -3339,10 +3380,10 @@ { "key.annotated_decl" : "struct DecelerationRate : _ObjectiveCBridgeable<\/Type>, Hashable<\/Type>, Equatable<\/Type>, _SwiftNewtypeWrapper<\/Type>, RawRepresentable<\/Type>, @unchecked Sendable<\/Type><\/Declaration>", "key.bodylength" : 312, - "key.bodyoffset" : 7483, + "key.bodyoffset" : 7662, "key.column" : 17, "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.2.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIScrollView.h", + "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.5.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIScrollView.h", "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> DecelerationRate<\/decl.name> : _ObjectiveCBridgeable<\/ref.protocol>, Hashable<\/ref.protocol>, Equatable<\/ref.protocol>, _SwiftNewtypeWrapper<\/ref.protocol>, RawRepresentable<\/ref.protocol>, @unchecked Sendable<\/ref.protocol><\/decl.struct>", "key.is_system" : true, "key.kind" : "source.lang.swift.decl.extension", @@ -3351,32 +3392,32 @@ "key.modulename" : "UIKit.UIScrollView", "key.name" : "UICollectionView.DecelerationRate", "key.namelength" : 33, - "key.nameoffset" : 7448, - "key.offset" : 7438, + "key.nameoffset" : 7627, + "key.offset" : 7617, "key.parsed_declaration" : "extension UICollectionView.DecelerationRate", - "key.parsed_scope.end" : 207, - "key.parsed_scope.start" : 195, + "key.parsed_scope.end" : 212, + "key.parsed_scope.start" : 200, "key.reusingastcontext" : false, "key.substructure" : [ { "key.annotated_decl" : "init(behaviorValue: Behavior<\/Type>.DecelerationRate<\/Type>)<\/Declaration>", "key.bodylength" : 252, - "key.bodyoffset" : 7541, + "key.bodyoffset" : 7720, "key.column" : 5, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift", "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(behaviorValue<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct>.DecelerationRate<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", "key.kind" : "source.lang.swift.decl.function.method.instance", "key.length" : 305, - "key.line" : 198, + "key.line" : 203, "key.modulename" : "ListableUI", "key.name" : "init(behaviorValue:)", "key.namelength" : 46, - "key.nameoffset" : 7489, - "key.offset" : 7489, + "key.nameoffset" : 7668, + "key.offset" : 7668, "key.parsed_declaration" : "init(behaviorValue: Behavior.DecelerationRate)", - "key.parsed_scope.end" : 206, - "key.parsed_scope.start" : 198, + "key.parsed_scope.end" : 211, + "key.parsed_scope.start" : 203, "key.related_decls" : [ { "key.annotated_decl" : "init(rawValue:)<\/RelatedName>" @@ -3446,7 +3487,7 @@ "key.bodyoffset" : 180, "key.column" : 12, "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.2.sdk\/System\/Library\/Frameworks\/Foundation.framework\/Headers\/NSBundle.h", + "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.5.sdk\/System\/Library\/Frameworks\/Foundation.framework\/Headers\/NSBundle.h", "key.fully_annotated_decl" : "@_nonSendable(_assumed)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> class<\/syntaxtype.keyword> Bundle<\/decl.name> : NSObject<\/ref.class>, @unchecked Sendable<\/ref.protocol><\/decl.class>", "key.is_system" : true, "key.kind" : "source.lang.swift.decl.extension", @@ -3922,7 +3963,7 @@ "key.parsed_scope.start" : 33, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "AnyHeaderFooterConvertible?", + "key.typename" : "(any AnyHeaderFooterConvertible)?", "key.typeusr" : "$s10ListableUI26AnyHeaderFooterConvertible_pSgD", "key.usr" : "s:10ListableUI7ContentV15containerHeaderAA03AnyE17FooterConvertible_pSgvp" }, @@ -3963,7 +4004,7 @@ "key.parsed_scope.start" : 36, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "AnyHeaderFooterConvertible?", + "key.typename" : "(any AnyHeaderFooterConvertible)?", "key.typeusr" : "$s10ListableUI26AnyHeaderFooterConvertible_pSgD", "key.usr" : "s:10ListableUI7ContentV6headerAA26AnyHeaderFooterConvertible_pSgvp" }, @@ -4004,7 +4045,7 @@ "key.parsed_scope.start" : 39, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "AnyHeaderFooterConvertible?", + "key.typename" : "(any AnyHeaderFooterConvertible)?", "key.typeusr" : "$s10ListableUI26AnyHeaderFooterConvertible_pSgD", "key.usr" : "s:10ListableUI7ContentV6footerAA26AnyHeaderFooterConvertible_pSgvp" }, @@ -4045,7 +4086,7 @@ "key.parsed_scope.start" : 43, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "AnyHeaderFooterConvertible?", + "key.typename" : "(any AnyHeaderFooterConvertible)?", "key.typeusr" : "$s10ListableUI26AnyHeaderFooterConvertible_pSgD", "key.usr" : "s:10ListableUI7ContentV16overscrollFooterAA09AnyHeaderE11Convertible_pSgvp" }, @@ -4351,7 +4392,7 @@ "key.substructure" : [ ], - "key.typename" : "(Content.Type) -> (AnyHashable?, ContentContext?, RefreshControl?, AnyHeaderFooterConvertible?, AnyHeaderFooterConvertible?, AnyHeaderFooterConvertible?, AnyHeaderFooterConvertible?, [Section]) -> Content", + "key.typename" : "(Content.Type) -> (AnyHashable?, ContentContext?, RefreshControl?, (any AnyHeaderFooterConvertible)?, (any AnyHeaderFooterConvertible)?, (any AnyHeaderFooterConvertible)?, (any AnyHeaderFooterConvertible)?, [Section]) -> Content", "key.typeusr" : "$s10identifier7context14refreshControl15containerHeader6header6footer16overscrollFooter8sections10ListableUI7ContentVs11AnyHashableVSg_AI0N7ContextVSgAI07RefreshD0VSgAI0ofJ11Convertible_pSgA3VSayAI7SectionVGtcD", "key.usr" : "s:10ListableUI7ContentV10identifier7context14refreshControl15containerHeader6header6footer16overscrollFooter8sectionsACs11AnyHashableVSg_AA0C7ContextVSgAA07RefreshG0VSgAA0oiM11Convertible_pSgA3VSayAA7SectionVGtcfc" }, @@ -4399,7 +4440,7 @@ "key.parsed_scope.end" : 147, "key.parsed_scope.start" : 141, "key.reusingastcontext" : false, - "key.typename" : "AnyItem?", + "key.typename" : "(any AnyItem)?", "key.typeusr" : "$s10ListableUI7AnyItem_pSgD", "key.usr" : "s:10ListableUI7ContentV9firstItemAA03AnyE0_pSgvp" }, @@ -4441,7 +4482,7 @@ "key.parsed_scope.end" : 156, "key.parsed_scope.start" : 150, "key.reusingastcontext" : false, - "key.typename" : "AnyItem?", + "key.typename" : "(any AnyItem)?", "key.typeusr" : "$s10ListableUI7AnyItem_pSgD", "key.usr" : "s:10ListableUI7ContentV8lastItemAA03AnyE0_pSgvp" }, @@ -4507,11 +4548,11 @@ "key.usr" : "s:10ListableUI7ContentV4item2atAA7AnyItem_p10Foundation9IndexPathV_tF7sectionL_AA7SectionVvp" }, { - "key.annotated_decl" : "let item: AnyItem<\/Type><\/Declaration>", + "key.annotated_decl" : "let item: any AnyItem<\/Type><\/Declaration>", "key.column" : 13, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyItem<\/ref.protocol><\/decl.var.type><\/decl.var.local>", + "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyItem<\/ref.protocol><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 40, "key.line" : 163, @@ -4524,12 +4565,12 @@ "key.parsed_scope.end" : 163, "key.parsed_scope.start" : 163, "key.reusingastcontext" : false, - "key.typename" : "AnyItem", + "key.typename" : "any AnyItem", "key.typeusr" : "$s10ListableUI7AnyItem_pD", "key.usr" : "s:10ListableUI7ContentV4item2atAA7AnyItem_p10Foundation9IndexPathV_tFADL_AaF_pvp" } ], - "key.typename" : "(Content) -> (IndexPath) -> AnyItem", + "key.typename" : "(Content) -> (IndexPath) -> any AnyItem", "key.typeusr" : "$s2at10ListableUI7AnyItem_p10Foundation9IndexPathV_tcD", "key.usr" : "s:10ListableUI7ContentV4item2atAA7AnyItem_p10Foundation9IndexPathV_tF" }, @@ -4714,11 +4755,11 @@ "key.reusingastcontext" : false, "key.substructure" : [ { - "key.annotated_decl" : "let item: AnyItem<\/Type><\/Declaration>", + "key.annotated_decl" : "let item: any AnyItem<\/Type><\/Declaration>", "key.column" : 13, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyItem<\/ref.protocol><\/decl.var.type><\/decl.var.local>", + "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyItem<\/ref.protocol><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 30, "key.line" : 224, @@ -4731,7 +4772,7 @@ "key.parsed_scope.end" : 224, "key.parsed_scope.start" : 224, "key.reusingastcontext" : false, - "key.typename" : "AnyItem", + "key.typename" : "any AnyItem", "key.typeusr" : "$s10ListableUI7AnyItem_pD", "key.usr" : "s:10ListableUI7ContentV8moveItem4from2toy10Foundation9IndexPathV_AItF4itemL_AA03AnyE0_pvp" } @@ -5178,7 +5219,7 @@ "key.substructure" : [ ], - "key.typename" : "(inout Content) -> (AnyItem, IndexPath) -> ()", + "key.typename" : "(inout Content) -> (any AnyItem, IndexPath) -> ()", "key.typeusr" : "$s4item2aty10ListableUI7AnyItem_p_10Foundation9IndexPathVtcD", "key.usr" : "s:10ListableUI7ContentV6insert4item2atyAA7AnyItem_p_10Foundation9IndexPathVtF" }, @@ -7368,7 +7409,7 @@ "key.usr" : "s:10ListableUI16SignpostLoggableP12signpostInfoAA0c7LoggingF0Vvp" } ], - "key.typename" : "SignpostLoggable.Protocol", + "key.typename" : "SignpostLoggable.Type", "key.typeusr" : "$s10ListableUI16SignpostLoggable_pmD", "key.usr" : "s:10ListableUI16SignpostLoggableP" }, @@ -7617,7 +7658,7 @@ "key.usr" : "s:10ListableUI14SignpostLoggerV3logAD4name3for_xSo06OS_os_E0C_s12StaticStringVAA0C8Loggable_pSgxyXEtlFZ6outputL0_xvp" } ], - "key.typename" : " (SignpostLogger.Type) -> (OSLog, StaticString, SignpostLoggable?, () -> Output) -> Output", + "key.typename" : " (SignpostLogger.Type) -> (OSLog, StaticString, (any SignpostLoggable)?, () -> Output) -> Output", "key.typeusr" : "$s3log4name3for_xSo06OS_os_A0C_s12StaticStringV10ListableUI16SignpostLoggable_pSgxyXEtcluD", "key.usr" : "s:10ListableUI14SignpostLoggerV3logAD4name3for_xSo06OS_os_E0C_s12StaticStringVAA0C8Loggable_pSgxyXEtlFZ" }, @@ -7650,7 +7691,7 @@ "key.substructure" : [ ], - "key.typename" : "(SignpostLogger.Type) -> (SignpostLogger.EventType, OSLog, StaticString, SignpostLoggable?) -> ()", + "key.typename" : "(SignpostLogger.Type) -> (SignpostLogger.EventType, OSLog, StaticString, (any SignpostLoggable)?) -> ()", "key.typeusr" : "$s_3log4name3fory10ListableUI14SignpostLoggerV9EventTypeO_So06OS_os_A0Cs12StaticStringVAD0F8Loggable_pSgtcD", "key.usr" : "s:10ListableUI14SignpostLoggerV3log_AD4name3foryAC9EventTypeO_So06OS_os_E0Cs12StaticStringVAA0C8Loggable_pSgtFZ" }, @@ -7870,7 +7911,7 @@ "key.usr" : "s:10ListableUI14SignpostLoggerV19debuggingIdentifier33_DED91A9F15380E1536C4C4958A08DE30LL3forSSAA0C8Loggable_p_tFZ10componentsL_SaySSGvp" } ], - "key.typename" : "(SignpostLogger.Type) -> (SignpostLoggable) -> String", + "key.typename" : "(SignpostLogger.Type) -> (any SignpostLoggable) -> String", "key.typeusr" : "$s3forSS10ListableUI16SignpostLoggable_p_tcD", "key.usr" : "s:10ListableUI14SignpostLoggerV19debuggingIdentifier33_DED91A9F15380E1536C4C4958A08DE30LL3forSSAA0C8Loggable_p_tFZ" } @@ -7894,7 +7935,7 @@ "key.offset" : 1241 }, { - "key.annotated_decl" : "public struct LayoutDescription : Equatable<\/Declaration>", + "key.annotated_decl" : "public struct LayoutDescription : Equatable<\/Type><\/Declaration>", "key.bodylength" : 220, "key.bodyoffset" : 1304, "key.column" : 15, @@ -7927,8 +7968,10 @@ "key.doc.line" : 42, "key.doc.name" : "LayoutDescription", "key.doc.type" : "Class", + "key.doclength" : 1125, + "key.docoffset" : 109, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LayoutDescription<\/decl.name> : Equatable<\/decl.struct>", + "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LayoutDescription<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", "key.kind" : "source.lang.swift.decl.extension", "key.length" : 250, "key.line" : 42, @@ -7985,7 +8028,7 @@ "key.substructure" : [ { "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct Item<Content> : AnyItem, AnyItemConvertible where Content<\/Type> : ItemContent<\/Type><\/Declaration>", + "key.annotated_decl" : "public struct Item<Content> : AnyItem<\/Type>, AnyItemConvertible<\/Type> where Content<\/Type> : ItemContent<\/Type><\/Declaration>", "key.attributes" : [ { "key.attribute" : "source.decl.attribute.public", @@ -8016,7 +8059,7 @@ "key.doc.name" : "Item", "key.doc.type" : "Class", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Item<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyItem, AnyItemConvertible where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", + "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Item<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyItem<\/ref.protocol>, AnyItemConvertible<\/ref.protocol> where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", "key.kind" : "source.lang.swift.decl.extension", "key.length" : 1067, "key.line" : 22, @@ -9156,7 +9199,7 @@ "key.usr" : "s:10ListableUI18ListEnvironmentKeyP12defaultValue0G0QzvpZ" } ], - "key.typename" : "ListEnvironmentKey.Protocol", + "key.typename" : "ListEnvironmentKey.Type", "key.typeusr" : "$s10ListableUI18ListEnvironmentKey_pmD", "key.usr" : "s:10ListableUI18ListEnvironmentKeyP" } @@ -9325,7 +9368,7 @@ "key.usr" : "s:10ListableUI15AnyHeaderFooterP22reappliesToVisibleViewAA09ReappliesghI0Ovp" } ], - "key.typename" : "AnyHeaderFooter.Protocol", + "key.typename" : "AnyHeaderFooter.Type", "key.typeusr" : "$s10ListableUI15AnyHeaderFooter_pmD", "key.usr" : "s:10ListableUI15AnyHeaderFooterP" }, @@ -9456,7 +9499,7 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (AnyHeaderFooter) -> Bool", + "key.typename" : " (Self) -> (any AnyHeaderFooter) -> Bool", "key.typeusr" : "$s2toSb10ListableUI15AnyHeaderFooter_p_tcD", "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP15anyIsEquivalent2toSbAA0cdE0_p_tF" }, @@ -9487,7 +9530,7 @@ "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP015newPresentationdE5State4kind24performsContentCallbacksypAA17SupplementaryKindO_SbtF" } ], - "key.typename" : "AnyHeaderFooter_Internal.Protocol", + "key.typename" : "AnyHeaderFooter_Internal.Type", "key.typeusr" : "$s10ListableUI24AnyHeaderFooter_Internal_pmD", "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP" } @@ -9581,12 +9624,12 @@ "key.parsed_scope.end" : 38, "key.parsed_scope.start" : 38, "key.reusingastcontext" : false, - "key.typename" : " (Self) -> () -> AnyHeaderFooter", + "key.typename" : " (Self) -> () -> any AnyHeaderFooter", "key.typeusr" : "$s10ListableUI15AnyHeaderFooter_pycD", "key.usr" : "s:10ListableUI26AnyHeaderFooterConvertibleP02ascdE0AA0cdE0_pyF" } ], - "key.typename" : "AnyHeaderFooterConvertible.Protocol", + "key.typename" : "AnyHeaderFooterConvertible.Type", "key.typeusr" : "$s10ListableUI26AnyHeaderFooterConvertible_pmD", "key.usr" : "s:10ListableUI26AnyHeaderFooterConvertibleP" } @@ -10629,7 +10672,7 @@ "key.parsed_scope.end" : 78, "key.parsed_scope.start" : 76, "key.reusingastcontext" : false, - "key.typename" : " (HeaderFooter) -> () -> AnyHeaderFooter", + "key.typename" : " (HeaderFooter) -> () -> any AnyHeaderFooter", "key.typeusr" : "$s10ListableUI15AnyHeaderFooter_pycD", "key.usr" : "s:10ListableUI26AnyHeaderFooterConvertibleP02ascdE0AA0cdE0_pyF" }, @@ -10795,7 +10838,7 @@ "key.substructure" : [ ], - "key.typename" : " (HeaderFooter) -> (AnyHeaderFooter) -> Bool", + "key.typename" : " (HeaderFooter) -> (any AnyHeaderFooter) -> Bool", "key.typeusr" : "$s2toSb10ListableUI15AnyHeaderFooter_p_tcD", "key.usr" : "s:10ListableUI12HeaderFooterV15anyIsEquivalent2toSbAA03AnycD0_p_tF" }, @@ -10940,7 +10983,7 @@ "key.usr" : "s:10ListableUI19HeaderFooterContentPAAE4with6sizing7layouts5onTapAA0cD0VyxGAA6SizingOSg_AA0cD7LayoutsVSgyycSgtF" } ], - "key.typename" : "HeaderFooterContent.Protocol", + "key.typename" : "HeaderFooterContent.Type", "key.typeusr" : "$s10ListableUI19HeaderFooterContent_pmD", "key.usr" : "s:10ListableUI19HeaderFooterContentP" }, @@ -11045,7 +11088,7 @@ "key.parsed_scope.end" : 11, "key.parsed_scope.start" : 11, "key.reusingastcontext" : false, - "key.typename" : "HeaderFooterContent.Protocol", + "key.typename" : "HeaderFooterContent.Type", "key.typeusr" : "$s10ListableUI19HeaderFooterContent_pmD", "key.usr" : "s:10ListableUI13HeaderContenta" }, @@ -11075,7 +11118,7 @@ "key.parsed_scope.end" : 12, "key.parsed_scope.start" : 12, "key.reusingastcontext" : false, - "key.typename" : "HeaderFooterContent.Protocol", + "key.typename" : "HeaderFooterContent.Type", "key.typeusr" : "$s10ListableUI19HeaderFooterContent_pmD", "key.usr" : "s:10ListableUI13FooterContenta" }, @@ -11640,7 +11683,7 @@ "key.usr" : "s:10ListableUI19HeaderFooterContentP35createReusablePressedBackgroundView5frame0hiJ0QzSo6CGRectV_tFZ" } ], - "key.typename" : "HeaderFooterContent.Protocol", + "key.typename" : "HeaderFooterContent.Type", "key.typeusr" : "$s10ListableUI19HeaderFooterContent_pmD", "key.usr" : "s:10ListableUI19HeaderFooterContentP" }, @@ -12150,7 +12193,7 @@ "key.usr" : "s:10ListableUI19HeaderFooterContentP22reappliesToVisibleViewAA09ReappliesghI0Ovp" } ], - "key.typename" : "HeaderFooterContent.Protocol", + "key.typename" : "HeaderFooterContent.Type", "key.typeusr" : "$s10ListableUI19HeaderFooterContent_pmD", "key.usr" : "s:10ListableUI19HeaderFooterContentP" }, @@ -12254,12 +12297,12 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> () -> AnyHeaderFooter", + "key.typename" : " (Self) -> () -> any AnyHeaderFooter", "key.typeusr" : "$s10ListableUI15AnyHeaderFooter_pycD", "key.usr" : "s:10ListableUI26AnyHeaderFooterConvertibleP02ascdE0AA0cdE0_pyF" } ], - "key.typename" : "HeaderFooterContent.Protocol", + "key.typename" : "HeaderFooterContent.Type", "key.typeusr" : "$s10ListableUI19HeaderFooterContent_pmD", "key.usr" : "s:10ListableUI19HeaderFooterContentP" }, @@ -12360,7 +12403,7 @@ "key.usr" : "s:10ListableUI19HeaderFooterContentPAASQRzrlE12isEquivalent2toSbx_tF" } ], - "key.typename" : "HeaderFooterContent.Protocol", + "key.typename" : "HeaderFooterContent.Type", "key.typeusr" : "$s10ListableUI19HeaderFooterContent_pmD", "key.usr" : "s:10ListableUI19HeaderFooterContentP" }, @@ -12466,7 +12509,7 @@ "key.usr" : "s:10ListableUI19HeaderFooterContentP28createReusableBackgroundView5frame0hI0QzSo6CGRectV_tFZ" } ], - "key.typename" : "HeaderFooterContent.Protocol", + "key.typename" : "HeaderFooterContent.Type", "key.typeusr" : "$s10ListableUI19HeaderFooterContent_pmD", "key.usr" : "s:10ListableUI19HeaderFooterContentP" }, @@ -12578,7 +12621,7 @@ "key.usr" : "s:10ListableUI19HeaderFooterContentP35createReusablePressedBackgroundView5frame0hiJ0QzSo6CGRectV_tFZ" } ], - "key.typename" : "HeaderFooterContent.Protocol", + "key.typename" : "HeaderFooterContent.Type", "key.typeusr" : "$s10ListableUI19HeaderFooterContent_pmD", "key.usr" : "s:10ListableUI19HeaderFooterContentP" }, @@ -12681,7 +12724,7 @@ "key.usr" : "s:10ListableUI19HeaderFooterContentP07defaultcD10PropertiesAA07DefaultcdG0VyxGvp" } ], - "key.typename" : "HeaderFooterContent.Protocol", + "key.typename" : "HeaderFooterContent.Type", "key.typeusr" : "$s10ListableUI19HeaderFooterContent_pmD", "key.usr" : "s:10ListableUI19HeaderFooterContentP" }, @@ -12779,7 +12822,7 @@ "key.usr" : "s:10ListableUI19HeaderFooterContentPAAE015isStickySectionC0SbSgvp" } ], - "key.typename" : "HeaderFooterContent.Protocol", + "key.typename" : "HeaderFooterContent.Type", "key.typeusr" : "$s10ListableUI19HeaderFooterContent_pmD", "key.usr" : "s:10ListableUI19HeaderFooterContentP" } @@ -13101,7 +13144,7 @@ "key.usr" : "s:10ListableUI24HeaderFooterLayoutsValueP07defaultF0xvpZ" } ], - "key.typename" : "HeaderFooterLayoutsValue.Protocol", + "key.typename" : "HeaderFooterLayoutsValue.Type", "key.typeusr" : "$s10ListableUI24HeaderFooterLayoutsValue_pmD", "key.usr" : "s:10ListableUI24HeaderFooterLayoutsValueP" }, @@ -14112,7 +14155,7 @@ "key.offset" : 0, "key.substructure" : [ { - "key.annotated_decl" : "@frozen struct Array<Element> : _DestructorSafeContainer<\/Type><\/Declaration>", + "key.annotated_decl" : "@frozen @_eagerMove struct Array<Element> : _DestructorSafeContainer<\/Type><\/Declaration>", "key.bodylength" : 1949, "key.bodyoffset" : 121, "key.decl_lang" : "source.lang.swift", @@ -14251,7 +14294,7 @@ "key.doc.full_as_xml" : "Array<\/Name>s:Sa<\/USR>@frozen struct Array<Element> : _DestructorSafeContainer<\/Declaration>An ordered, random-access collection.<\/Para><\/Abstract>Arrays are one of the most commonly used data types in an app. You use arrays to organize your app’s data. Specifically, you use the Array<\/codeVoice> type to hold elements of a single type, the array’s Element<\/codeVoice> type. An array can store any kind of elements—from integers to strings to classes.<\/Para>Swift makes it easy to create arrays in your code using an array literal: simply surround a comma-separated list of values with square brackets. Without any other information, Swift creates an array that includes the specified values, automatically inferring the array’s Element<\/codeVoice> type. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can create an empty array by specifying the Element<\/codeVoice> type of your array in the declaration. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> = Array()]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you need an array that is preinitialized with a fixed number of default values, use the Array(repeating:count:)<\/codeVoice> initializer.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Accessing Array Values]]><\/rawHTML>When you need to perform an operation on all of an array’s elements, use a for<\/codeVoice>-in<\/codeVoice> loop to iterate through the array’s contents.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Use the isEmpty<\/codeVoice> property to check quickly whether an array has any elements, or use the count<\/codeVoice> property to find the number of elements in the array.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Use the first<\/codeVoice> and last<\/codeVoice> properties for safe access to the value of the array’s first and last elements. If the array is empty, these properties are nil<\/codeVoice>.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can access individual array elements through a subscript. The first element of a nonempty array is always at index zero. You can subscript an array with any integer from zero up to, but not including, the count of the array. Using a negative number or an index equal to or greater than count<\/codeVoice> triggers a runtime error. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Adding and Removing Elements]]><\/rawHTML>Suppose you need to store a list of the names of students that are signed up for a class you’re teaching. During the registration period, you need to add and remove names as students add and drop the class.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>To add single elements to the end of an array, use the append(_:)<\/codeVoice> method. Add multiple elements at the same time by passing another array or a sequence of any kind to the append(contentsOf:)<\/codeVoice> method.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can add new elements in the middle of an array by using the insert(_:at:)<\/codeVoice> method for single elements and by using insert(contentsOf:at:)<\/codeVoice> to insert multiple elements from another collection or array literal. The elements at that index and later indices are shifted back to make room.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>To remove elements from an array, use the remove(at:)<\/codeVoice>, removeSubrange(_:)<\/codeVoice>, and removeLast()<\/codeVoice> methods.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can replace an existing element with a new value by assigning the new value to the subscript.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Growing the Size of an Array]]><\/rawHTML>Every array reserves a specific amount of memory to hold its contents. When you add elements to an array and that array begins to exceed its reserved capacity, the array allocates a larger region of memory and copies its elements into the new storage. The new storage is a multiple of the old storage’s size. This exponential growth strategy means that appending an element happens in constant time, averaging the performance of many append operations. Append operations that trigger reallocation have a performance cost, but they occur less and less often as the array grows larger.<\/Para>If you know approximately how many elements you will need to store, use the reserveCapacity(_:)<\/codeVoice> method before appending to the array to avoid intermediate reallocations. Use the capacity<\/codeVoice> and count<\/codeVoice> properties to determine how many more elements the array can store without allocating larger storage.<\/Para>For arrays of most Element<\/codeVoice> types, this storage is a contiguous block of memory. For arrays with an Element<\/codeVoice> type that is a class or @objc<\/codeVoice> protocol type, this storage can be a contiguous block of memory or an instance of NSArray<\/codeVoice>. Because any arbitrary subclass of NSArray<\/codeVoice> can become an Array<\/codeVoice>, there are no guarantees about representation or efficiency in this case.<\/Para>]]><\/rawHTML>Modifying Copies of Arrays]]><\/rawHTML>Each array has an independent value that includes the values of all of its elements. For simple types such as integers and other structures, this means that when you change a value in one array, the value of that element does not change in any copies of the array. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If the elements in an array are instances of a class, the semantics are the same, though they might appear different at first. In this case, the values stored in the array are references to objects that live outside the array. If you change a reference to an object in one array, only that array has a reference to the new object. However, if two arrays contain references to the same object, you can observe changes to that object’s properties from both arrays. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Arrays, like all variable-size collections in the standard library, use copy-on-write optimization. Multiple copies of an array share the same storage until you modify one of the copies. When that happens, the array being modified replaces its storage with a uniquely owned copy of itself, which is then modified in place. Optimizations are sometimes applied that can reduce the amount of copying.<\/Para>This means that if an array is sharing storage with other copies, the first mutating operation on that array incurs the cost of copying the array. An array that is the sole owner of its storage can perform mutating operations in place.<\/Para>In the example below, a numbers<\/codeVoice> array is created along with two copies that share the same storage. When the original numbers<\/codeVoice> array is modified, it makes a unique copy of its storage before making the modification. Further modifications to numbers<\/codeVoice> are made in place, while the two copies continue to share the original storage.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Bridging Between Array and NSArray]]><\/rawHTML>When you need to access APIs that require data in an NSArray<\/codeVoice> instance instead of Array<\/codeVoice>, use the type-cast operator (as<\/codeVoice>) to bridge your instance. For bridging to be possible, the Element<\/codeVoice> type of your array must be a class, an @objc<\/codeVoice> protocol (a protocol imported from Objective-C or marked with the @objc<\/codeVoice> attribute), or a type that bridges to a Foundation type.<\/Para>The following example shows how you can bridge an Array<\/codeVoice> instance to NSArray<\/codeVoice> to use the write(to:atomically:)<\/codeVoice> method. In this example, the colors<\/codeVoice> array can be bridged to NSArray<\/codeVoice> because the colors<\/codeVoice> array’s String<\/codeVoice> elements bridge to NSString<\/codeVoice>. The compiler prevents bridging the moreColors<\/codeVoice> array, on the other hand, because its Element<\/codeVoice> type is Optional<String><\/codeVoice>, which does not<\/emphasis> bridge to a Foundation type.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Bridging from Array<\/codeVoice> to NSArray<\/codeVoice> takes O(1) time and O(1) space if the array’s elements are already instances of a class or an @objc<\/codeVoice> protocol; otherwise, it takes O(n<\/emphasis>) time and space.<\/Para>When the destination array’s element type is a class or an @objc<\/codeVoice> protocol, bridging from NSArray<\/codeVoice> to Array<\/codeVoice> first calls the copy(with:)<\/codeVoice> (- copyWithZone:<\/codeVoice> in Objective-C) method on the array to get an immutable copy and then performs additional Swift bookkeeping work that takes O(1) time. For instances of NSArray<\/codeVoice> that are already immutable, copy(with:)<\/codeVoice> usually returns the same array in O(1) time; otherwise, the copying performance is unspecified. If copy(with:)<\/codeVoice> returns the same array, the instances of NSArray<\/codeVoice> and Array<\/codeVoice> share storage using the same copy-on-write optimization that is used when two instances of Array<\/codeVoice> share storage.<\/Para>When the destination array’s element type is a nonclass type that bridges to a Foundation type, bridging from NSArray<\/codeVoice> to Array<\/codeVoice> performs a bridging copy of the elements to contiguous storage in O(n<\/emphasis>) time. For example, bridging from NSArray<\/codeVoice> to Array<Int><\/codeVoice> performs such a copy. No further bridging is required when accessing elements of the Array<\/codeVoice> instance.<\/Para>The ContiguousArray<\/codeVoice> and ArraySlice<\/codeVoice> types are not bridged; instances of those types always have a contiguous block of memory as their storage.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Class>", "key.doc.name" : "Array", "key.doc.type" : "Class", - "key.fully_annotated_decl" : "@frozen<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> Array<\/decl.name><Element<\/decl.generic_type_param.name><\/decl.generic_type_param>> : _DestructorSafeContainer<\/ref.protocol><\/decl.struct>", + "key.fully_annotated_decl" : "@frozen<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @_eagerMove<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> Array<\/decl.name><Element<\/decl.generic_type_param.name><\/decl.generic_type_param>> : _DestructorSafeContainer<\/ref.protocol><\/decl.struct>", "key.groupname" : "Collection\/Array", "key.is_system" : true, "key.kind" : "source.lang.swift.decl.extension", @@ -14859,7 +14902,7 @@ "key.bodyoffset" : 145, "key.column" : 8, "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.2.sdk\/System\/Library\/Frameworks\/CoreFoundation.framework\/Headers\/CFCGTypes.h", + "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.5.sdk\/System\/Library\/Frameworks\/CoreFoundation.framework\/Headers\/CFCGTypes.h", "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> CGSize<\/decl.name><\/decl.struct>", "key.is_system" : true, "key.kind" : "source.lang.swift.decl.extension", @@ -18176,7 +18219,7 @@ }, { "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "@frozen struct Array<Element> : _DestructorSafeContainer<\/Type><\/Declaration>", + "key.annotated_decl" : "@frozen @_eagerMove struct Array<Element> : _DestructorSafeContainer<\/Type><\/Declaration>", "key.attributes" : [ { "key.attribute" : "source.decl.attribute.private", @@ -18322,7 +18365,7 @@ "key.doc.full_as_xml" : "Array<\/Name>s:Sa<\/USR>@frozen struct Array<Element> : _DestructorSafeContainer<\/Declaration>An ordered, random-access collection.<\/Para><\/Abstract>Arrays are one of the most commonly used data types in an app. You use arrays to organize your app’s data. Specifically, you use the Array<\/codeVoice> type to hold elements of a single type, the array’s Element<\/codeVoice> type. An array can store any kind of elements—from integers to strings to classes.<\/Para>Swift makes it easy to create arrays in your code using an array literal: simply surround a comma-separated list of values with square brackets. Without any other information, Swift creates an array that includes the specified values, automatically inferring the array’s Element<\/codeVoice> type. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can create an empty array by specifying the Element<\/codeVoice> type of your array in the declaration. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> = Array()]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you need an array that is preinitialized with a fixed number of default values, use the Array(repeating:count:)<\/codeVoice> initializer.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Accessing Array Values]]><\/rawHTML>When you need to perform an operation on all of an array’s elements, use a for<\/codeVoice>-in<\/codeVoice> loop to iterate through the array’s contents.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Use the isEmpty<\/codeVoice> property to check quickly whether an array has any elements, or use the count<\/codeVoice> property to find the number of elements in the array.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Use the first<\/codeVoice> and last<\/codeVoice> properties for safe access to the value of the array’s first and last elements. If the array is empty, these properties are nil<\/codeVoice>.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can access individual array elements through a subscript. The first element of a nonempty array is always at index zero. You can subscript an array with any integer from zero up to, but not including, the count of the array. Using a negative number or an index equal to or greater than count<\/codeVoice> triggers a runtime error. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Adding and Removing Elements]]><\/rawHTML>Suppose you need to store a list of the names of students that are signed up for a class you’re teaching. During the registration period, you need to add and remove names as students add and drop the class.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>To add single elements to the end of an array, use the append(_:)<\/codeVoice> method. Add multiple elements at the same time by passing another array or a sequence of any kind to the append(contentsOf:)<\/codeVoice> method.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can add new elements in the middle of an array by using the insert(_:at:)<\/codeVoice> method for single elements and by using insert(contentsOf:at:)<\/codeVoice> to insert multiple elements from another collection or array literal. The elements at that index and later indices are shifted back to make room.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>To remove elements from an array, use the remove(at:)<\/codeVoice>, removeSubrange(_:)<\/codeVoice>, and removeLast()<\/codeVoice> methods.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can replace an existing element with a new value by assigning the new value to the subscript.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Growing the Size of an Array]]><\/rawHTML>Every array reserves a specific amount of memory to hold its contents. When you add elements to an array and that array begins to exceed its reserved capacity, the array allocates a larger region of memory and copies its elements into the new storage. The new storage is a multiple of the old storage’s size. This exponential growth strategy means that appending an element happens in constant time, averaging the performance of many append operations. Append operations that trigger reallocation have a performance cost, but they occur less and less often as the array grows larger.<\/Para>If you know approximately how many elements you will need to store, use the reserveCapacity(_:)<\/codeVoice> method before appending to the array to avoid intermediate reallocations. Use the capacity<\/codeVoice> and count<\/codeVoice> properties to determine how many more elements the array can store without allocating larger storage.<\/Para>For arrays of most Element<\/codeVoice> types, this storage is a contiguous block of memory. For arrays with an Element<\/codeVoice> type that is a class or @objc<\/codeVoice> protocol type, this storage can be a contiguous block of memory or an instance of NSArray<\/codeVoice>. Because any arbitrary subclass of NSArray<\/codeVoice> can become an Array<\/codeVoice>, there are no guarantees about representation or efficiency in this case.<\/Para>]]><\/rawHTML>Modifying Copies of Arrays]]><\/rawHTML>Each array has an independent value that includes the values of all of its elements. For simple types such as integers and other structures, this means that when you change a value in one array, the value of that element does not change in any copies of the array. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If the elements in an array are instances of a class, the semantics are the same, though they might appear different at first. In this case, the values stored in the array are references to objects that live outside the array. If you change a reference to an object in one array, only that array has a reference to the new object. However, if two arrays contain references to the same object, you can observe changes to that object’s properties from both arrays. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Arrays, like all variable-size collections in the standard library, use copy-on-write optimization. Multiple copies of an array share the same storage until you modify one of the copies. When that happens, the array being modified replaces its storage with a uniquely owned copy of itself, which is then modified in place. Optimizations are sometimes applied that can reduce the amount of copying.<\/Para>This means that if an array is sharing storage with other copies, the first mutating operation on that array incurs the cost of copying the array. An array that is the sole owner of its storage can perform mutating operations in place.<\/Para>In the example below, a numbers<\/codeVoice> array is created along with two copies that share the same storage. When the original numbers<\/codeVoice> array is modified, it makes a unique copy of its storage before making the modification. Further modifications to numbers<\/codeVoice> are made in place, while the two copies continue to share the original storage.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Bridging Between Array and NSArray]]><\/rawHTML>When you need to access APIs that require data in an NSArray<\/codeVoice> instance instead of Array<\/codeVoice>, use the type-cast operator (as<\/codeVoice>) to bridge your instance. For bridging to be possible, the Element<\/codeVoice> type of your array must be a class, an @objc<\/codeVoice> protocol (a protocol imported from Objective-C or marked with the @objc<\/codeVoice> attribute), or a type that bridges to a Foundation type.<\/Para>The following example shows how you can bridge an Array<\/codeVoice> instance to NSArray<\/codeVoice> to use the write(to:atomically:)<\/codeVoice> method. In this example, the colors<\/codeVoice> array can be bridged to NSArray<\/codeVoice> because the colors<\/codeVoice> array’s String<\/codeVoice> elements bridge to NSString<\/codeVoice>. The compiler prevents bridging the moreColors<\/codeVoice> array, on the other hand, because its Element<\/codeVoice> type is Optional<String><\/codeVoice>, which does not<\/emphasis> bridge to a Foundation type.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Bridging from Array<\/codeVoice> to NSArray<\/codeVoice> takes O(1) time and O(1) space if the array’s elements are already instances of a class or an @objc<\/codeVoice> protocol; otherwise, it takes O(n<\/emphasis>) time and space.<\/Para>When the destination array’s element type is a class or an @objc<\/codeVoice> protocol, bridging from NSArray<\/codeVoice> to Array<\/codeVoice> first calls the copy(with:)<\/codeVoice> (- copyWithZone:<\/codeVoice> in Objective-C) method on the array to get an immutable copy and then performs additional Swift bookkeeping work that takes O(1) time. For instances of NSArray<\/codeVoice> that are already immutable, copy(with:)<\/codeVoice> usually returns the same array in O(1) time; otherwise, the copying performance is unspecified. If copy(with:)<\/codeVoice> returns the same array, the instances of NSArray<\/codeVoice> and Array<\/codeVoice> share storage using the same copy-on-write optimization that is used when two instances of Array<\/codeVoice> share storage.<\/Para>When the destination array’s element type is a nonclass type that bridges to a Foundation type, bridging from NSArray<\/codeVoice> to Array<\/codeVoice> performs a bridging copy of the elements to contiguous storage in O(n<\/emphasis>) time. For example, bridging from NSArray<\/codeVoice> to Array<Int><\/codeVoice> performs such a copy. No further bridging is required when accessing elements of the Array<\/codeVoice> instance.<\/Para>The ContiguousArray<\/codeVoice> and ArraySlice<\/codeVoice> types are not bridged; instances of those types always have a contiguous block of memory as their storage.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Class>", "key.doc.name" : "Array", "key.doc.type" : "Class", - "key.fully_annotated_decl" : "@frozen<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> Array<\/decl.name><Element<\/decl.generic_type_param.name><\/decl.generic_type_param>> : _DestructorSafeContainer<\/ref.protocol><\/decl.struct>", + "key.fully_annotated_decl" : "@frozen<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @_eagerMove<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> Array<\/decl.name><Element<\/decl.generic_type_param.name><\/decl.generic_type_param>> : _DestructorSafeContainer<\/ref.protocol><\/decl.struct>", "key.groupname" : "Collection\/Array", "key.is_system" : true, "key.kind" : "source.lang.swift.decl.extension", @@ -18415,7 +18458,7 @@ }, { "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "@frozen struct Array<Element> : _DestructorSafeContainer<\/Type><\/Declaration>", + "key.annotated_decl" : "@frozen @_eagerMove struct Array<Element> : _DestructorSafeContainer<\/Type><\/Declaration>", "key.attributes" : [ { "key.attribute" : "source.decl.attribute.private", @@ -18561,7 +18604,7 @@ "key.doc.full_as_xml" : "Array<\/Name>s:Sa<\/USR>@frozen struct Array<Element> : _DestructorSafeContainer<\/Declaration>An ordered, random-access collection.<\/Para><\/Abstract>Arrays are one of the most commonly used data types in an app. You use arrays to organize your app’s data. Specifically, you use the Array<\/codeVoice> type to hold elements of a single type, the array’s Element<\/codeVoice> type. An array can store any kind of elements—from integers to strings to classes.<\/Para>Swift makes it easy to create arrays in your code using an array literal: simply surround a comma-separated list of values with square brackets. Without any other information, Swift creates an array that includes the specified values, automatically inferring the array’s Element<\/codeVoice> type. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can create an empty array by specifying the Element<\/codeVoice> type of your array in the declaration. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> = Array()]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you need an array that is preinitialized with a fixed number of default values, use the Array(repeating:count:)<\/codeVoice> initializer.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Accessing Array Values]]><\/rawHTML>When you need to perform an operation on all of an array’s elements, use a for<\/codeVoice>-in<\/codeVoice> loop to iterate through the array’s contents.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Use the isEmpty<\/codeVoice> property to check quickly whether an array has any elements, or use the count<\/codeVoice> property to find the number of elements in the array.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Use the first<\/codeVoice> and last<\/codeVoice> properties for safe access to the value of the array’s first and last elements. If the array is empty, these properties are nil<\/codeVoice>.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can access individual array elements through a subscript. The first element of a nonempty array is always at index zero. You can subscript an array with any integer from zero up to, but not including, the count of the array. Using a negative number or an index equal to or greater than count<\/codeVoice> triggers a runtime error. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Adding and Removing Elements]]><\/rawHTML>Suppose you need to store a list of the names of students that are signed up for a class you’re teaching. During the registration period, you need to add and remove names as students add and drop the class.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>To add single elements to the end of an array, use the append(_:)<\/codeVoice> method. Add multiple elements at the same time by passing another array or a sequence of any kind to the append(contentsOf:)<\/codeVoice> method.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can add new elements in the middle of an array by using the insert(_:at:)<\/codeVoice> method for single elements and by using insert(contentsOf:at:)<\/codeVoice> to insert multiple elements from another collection or array literal. The elements at that index and later indices are shifted back to make room.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>To remove elements from an array, use the remove(at:)<\/codeVoice>, removeSubrange(_:)<\/codeVoice>, and removeLast()<\/codeVoice> methods.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can replace an existing element with a new value by assigning the new value to the subscript.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Growing the Size of an Array]]><\/rawHTML>Every array reserves a specific amount of memory to hold its contents. When you add elements to an array and that array begins to exceed its reserved capacity, the array allocates a larger region of memory and copies its elements into the new storage. The new storage is a multiple of the old storage’s size. This exponential growth strategy means that appending an element happens in constant time, averaging the performance of many append operations. Append operations that trigger reallocation have a performance cost, but they occur less and less often as the array grows larger.<\/Para>If you know approximately how many elements you will need to store, use the reserveCapacity(_:)<\/codeVoice> method before appending to the array to avoid intermediate reallocations. Use the capacity<\/codeVoice> and count<\/codeVoice> properties to determine how many more elements the array can store without allocating larger storage.<\/Para>For arrays of most Element<\/codeVoice> types, this storage is a contiguous block of memory. For arrays with an Element<\/codeVoice> type that is a class or @objc<\/codeVoice> protocol type, this storage can be a contiguous block of memory or an instance of NSArray<\/codeVoice>. Because any arbitrary subclass of NSArray<\/codeVoice> can become an Array<\/codeVoice>, there are no guarantees about representation or efficiency in this case.<\/Para>]]><\/rawHTML>Modifying Copies of Arrays]]><\/rawHTML>Each array has an independent value that includes the values of all of its elements. For simple types such as integers and other structures, this means that when you change a value in one array, the value of that element does not change in any copies of the array. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If the elements in an array are instances of a class, the semantics are the same, though they might appear different at first. In this case, the values stored in the array are references to objects that live outside the array. If you change a reference to an object in one array, only that array has a reference to the new object. However, if two arrays contain references to the same object, you can observe changes to that object’s properties from both arrays. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Arrays, like all variable-size collections in the standard library, use copy-on-write optimization. Multiple copies of an array share the same storage until you modify one of the copies. When that happens, the array being modified replaces its storage with a uniquely owned copy of itself, which is then modified in place. Optimizations are sometimes applied that can reduce the amount of copying.<\/Para>This means that if an array is sharing storage with other copies, the first mutating operation on that array incurs the cost of copying the array. An array that is the sole owner of its storage can perform mutating operations in place.<\/Para>In the example below, a numbers<\/codeVoice> array is created along with two copies that share the same storage. When the original numbers<\/codeVoice> array is modified, it makes a unique copy of its storage before making the modification. Further modifications to numbers<\/codeVoice> are made in place, while the two copies continue to share the original storage.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Bridging Between Array and NSArray]]><\/rawHTML>When you need to access APIs that require data in an NSArray<\/codeVoice> instance instead of Array<\/codeVoice>, use the type-cast operator (as<\/codeVoice>) to bridge your instance. For bridging to be possible, the Element<\/codeVoice> type of your array must be a class, an @objc<\/codeVoice> protocol (a protocol imported from Objective-C or marked with the @objc<\/codeVoice> attribute), or a type that bridges to a Foundation type.<\/Para>The following example shows how you can bridge an Array<\/codeVoice> instance to NSArray<\/codeVoice> to use the write(to:atomically:)<\/codeVoice> method. In this example, the colors<\/codeVoice> array can be bridged to NSArray<\/codeVoice> because the colors<\/codeVoice> array’s String<\/codeVoice> elements bridge to NSString<\/codeVoice>. The compiler prevents bridging the moreColors<\/codeVoice> array, on the other hand, because its Element<\/codeVoice> type is Optional<String><\/codeVoice>, which does not<\/emphasis> bridge to a Foundation type.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Bridging from Array<\/codeVoice> to NSArray<\/codeVoice> takes O(1) time and O(1) space if the array’s elements are already instances of a class or an @objc<\/codeVoice> protocol; otherwise, it takes O(n<\/emphasis>) time and space.<\/Para>When the destination array’s element type is a class or an @objc<\/codeVoice> protocol, bridging from NSArray<\/codeVoice> to Array<\/codeVoice> first calls the copy(with:)<\/codeVoice> (- copyWithZone:<\/codeVoice> in Objective-C) method on the array to get an immutable copy and then performs additional Swift bookkeeping work that takes O(1) time. For instances of NSArray<\/codeVoice> that are already immutable, copy(with:)<\/codeVoice> usually returns the same array in O(1) time; otherwise, the copying performance is unspecified. If copy(with:)<\/codeVoice> returns the same array, the instances of NSArray<\/codeVoice> and Array<\/codeVoice> share storage using the same copy-on-write optimization that is used when two instances of Array<\/codeVoice> share storage.<\/Para>When the destination array’s element type is a nonclass type that bridges to a Foundation type, bridging from NSArray<\/codeVoice> to Array<\/codeVoice> performs a bridging copy of the elements to contiguous storage in O(n<\/emphasis>) time. For example, bridging from NSArray<\/codeVoice> to Array<Int><\/codeVoice> performs such a copy. No further bridging is required when accessing elements of the Array<\/codeVoice> instance.<\/Para>The ContiguousArray<\/codeVoice> and ArraySlice<\/codeVoice> types are not bridged; instances of those types always have a contiguous block of memory as their storage.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Class>", "key.doc.name" : "Array", "key.doc.type" : "Class", - "key.fully_annotated_decl" : "@frozen<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> Array<\/decl.name><Element<\/decl.generic_type_param.name><\/decl.generic_type_param>> : _DestructorSafeContainer<\/ref.protocol><\/decl.struct>", + "key.fully_annotated_decl" : "@frozen<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @_eagerMove<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> Array<\/decl.name><Element<\/decl.generic_type_param.name><\/decl.generic_type_param>> : _DestructorSafeContainer<\/ref.protocol><\/decl.struct>", "key.groupname" : "Collection\/Array", "key.is_system" : true, "key.kind" : "source.lang.swift.decl.extension", @@ -23840,7 +23883,7 @@ "key.offset" : 0, "key.substructure" : [ { - "key.annotated_decl" : "final class ItemCell<Content> : UICollectionViewCell<\/Type>, AnyItemCell where Content<\/Type> : ItemContent<\/Type><\/Declaration>", + "key.annotated_decl" : "final class ItemCell<Content> : UICollectionViewCell<\/Type>, AnyItemCell<\/Type> where Content<\/Type> : ItemContent<\/Type><\/Declaration>", "key.bodylength" : 12172, "key.bodyoffset" : 142, "key.column" : 13, @@ -23858,7 +23901,7 @@ "key.doc.name" : "ItemCell", "key.doc.type" : "Class", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ItemCell<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : UICollectionViewCell<\/ref.class>, AnyItemCell where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>", + "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ItemCell<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : UICollectionViewCell<\/ref.class>, AnyItemCell<\/ref.protocol> where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>", "key.kind" : "source.lang.swift.decl.extension", "key.length" : 12193, "key.line" : 29, @@ -25854,7 +25897,7 @@ "key.usr" : "s:10ListableUI11AnyItemCellP11wasDequeued4withyAA9LiveCellsC_tF" } ], - "key.typename" : "AnyItemCell.Protocol", + "key.typename" : "AnyItemCell.Type", "key.typeusr" : "$s10ListableUI11AnyItemCell_pmD", "key.usr" : "s:10ListableUI11AnyItemCellP" }, @@ -27316,7 +27359,7 @@ "key.substructure" : [ ], - "key.typename" : "(LiveCells) -> (AnyItemCell) -> ()", + "key.typename" : "(LiveCells) -> (any AnyItemCell) -> ()", "key.typeusr" : "$syy10ListableUI11AnyItemCell_pcD", "key.usr" : "s:10ListableUI9LiveCellsC3addyyAA11AnyItemCell_pF" }, @@ -27344,7 +27387,7 @@ "key.substructure" : [ ], - "key.typename" : "(LiveCells) -> ((AnyItemCell) -> ()) -> ()", + "key.typename" : "(LiveCells) -> ((any AnyItemCell) -> ()) -> ()", "key.typeusr" : "$syyy10ListableUI11AnyItemCell_pXEcD", "key.usr" : "s:10ListableUI9LiveCellsC7performyyyAA11AnyItemCell_pXEF" }, @@ -27393,7 +27436,7 @@ "key.usr" : "s:10ListableUI9LiveCellsC5first5whereAA11AnyItemCell_pSgSbAaF_pXE_tF4cellL_AC0cI0VSgvp" } ], - "key.typename" : "(LiveCells) -> ((AnyItemCell) -> Bool) -> AnyItemCell?", + "key.typename" : "(LiveCells) -> ((any AnyItemCell) -> Bool) -> (any AnyItemCell)?", "key.typeusr" : "$s5where10ListableUI11AnyItemCell_pSgSbAbC_pXE_tcD", "key.usr" : "s:10ListableUI9LiveCellsC5first5whereAA11AnyItemCell_pSgSbAaF_pXE_tF" }, @@ -27418,7 +27461,7 @@ "key.parsed_scope.end" : 310, "key.parsed_scope.start" : 308, "key.reusingastcontext" : false, - "key.typename" : "AnyItemCell?", + "key.typename" : "(any AnyItemCell)?", "key.typeusr" : "$s10ListableUI11AnyItemCell_pSgD", "key.usr" : "s:10ListableUI9LiveCellsC15activeSwipeCellAA07AnyItemG0_pSgvp" }, @@ -27502,7 +27545,7 @@ "key.parsed_scope.start" : 315, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "AnyItemCell?", + "key.typename" : "(any AnyItemCell)?", "key.typeusr" : "$s10ListableUI11AnyItemCell_pSgD", "key.usr" : "s:10ListableUI9LiveCellsC0C4CellV4cellAA07AnyItemE0_pSgvp" } @@ -27584,7 +27627,7 @@ "key.bodyoffset" : 10437, "key.column" : 12, "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.2.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIView.h", + "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.5.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIView.h", "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @_nonSendable(_assumed)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> class<\/syntaxtype.keyword> UIView<\/decl.name> : UIResponder<\/ref.class>, NSCoding<\/ref.protocol>, UIAppearance<\/ref.protocol>, UIAppearanceContainer<\/ref.protocol>, UIDynamicItem<\/ref.protocol>, UITraitEnvironment<\/ref.protocol>, UICoordinateSpace<\/ref.protocol>, UIFocusItem<\/ref.protocol>, UIFocusItemContainer<\/ref.protocol>, CALayerDelegate<\/ref.protocol><\/decl.class>", "key.is_system" : true, "key.kind" : "source.lang.swift.decl.extension", @@ -27817,7 +27860,7 @@ "key.parsed_scope.end" : 14, "key.parsed_scope.start" : 14, "key.reusingastcontext" : false, - "key.typename" : "AnyHeaderFooter", + "key.typename" : "any AnyHeaderFooter", "key.typeusr" : "$s10ListableUI15AnyHeaderFooter_pD", "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP8anyModelAA0ceF0_pvp" }, @@ -28023,7 +28066,7 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (AnyHeaderFooter, ApplyReason, UIView?, UpdateCallbacks, ApplyHeaderFooterContentInfo) -> ()", + "key.typename" : " (Self) -> (any AnyHeaderFooter, ApplyReason, UIView?, UpdateCallbacks, ApplyHeaderFooterContentInfo) -> ()", "key.typeusr" : "$s3new6reason11visibleView15updateCallbacks4infoy10ListableUI15AnyHeaderFooter_p_AF11ApplyReasonOSo6UIViewCSgAF06UpdateF0CAF0mkL11ContentInfoVtcD", "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP3set3new6reason11visibleView15updateCallbacks4infoyAA0ceF0_p_AA11ApplyReasonOSo6UIViewCSgAA06UpdateN0CAA0peF11ContentInfoVtF" }, @@ -28077,7 +28120,7 @@ "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP4size3for5cache11environmentSo6CGSizeVAA6SizingO11MeasureInfoV_AA17ReusableViewCacheCAA15ListEnvironmentVtF" } ], - "key.typename" : "AnyPresentationHeaderFooterState.Protocol", + "key.typename" : "AnyPresentationHeaderFooterState.Type", "key.typeusr" : "$s10ListableUI32AnyPresentationHeaderFooterState_pmD", "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP" }, @@ -28164,7 +28207,7 @@ "key.parsed_scope.start" : 60, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "AnyPresentationHeaderFooterState?", + "key.typename" : "(any AnyPresentationHeaderFooterState)?", "key.typeusr" : "$s10ListableUI32AnyPresentationHeaderFooterState_pSgD", "key.usr" : "s:10ListableUI17PresentationStateC016HeaderFooterViewD4PairC5stateAA03AnycefD0_pSgvp" }, @@ -28223,7 +28266,7 @@ "key.substructure" : [ ], - "key.typename" : "(PresentationState.HeaderFooterViewStatePair.Type) -> (AnyPresentationHeaderFooterState?) -> PresentationState.HeaderFooterViewStatePair", + "key.typename" : "(PresentationState.HeaderFooterViewStatePair.Type) -> ((any AnyPresentationHeaderFooterState)?) -> PresentationState.HeaderFooterViewStatePair", "key.typeusr" : "$s5state10ListableUI17PresentationStateC016HeaderFooterViewE4PairCAB03AnydfgE0_pSg_tcD", "key.usr" : "s:10ListableUI17PresentationStateC016HeaderFooterViewD4PairC5stateAeA03AnycefD0_pSg_tcfc" }, @@ -28251,7 +28294,7 @@ "key.substructure" : [ ], - "key.typename" : "(PresentationState.HeaderFooterViewStatePair) -> (AnyPresentationHeaderFooterState?, AnyHeaderFooterConvertible?, ApplyReason, Bool, UpdateCallbacks, ListEnvironment) -> ()", + "key.typename" : "(PresentationState.HeaderFooterViewStatePair) -> ((any AnyPresentationHeaderFooterState)?, (any AnyHeaderFooterConvertible)?, ApplyReason, Bool, UpdateCallbacks, ListEnvironment) -> ()", "key.typeusr" : "$s4with3new6reason8animated15updateCallbacks11environmenty10ListableUI32AnyPresentationHeaderFooterState_pSg_AG0jlM11Convertible_pSgAG11ApplyReasonOSbAG06UpdateF0CAG15ListEnvironmentVtcD", "key.usr" : "s:10ListableUI17PresentationStateC016HeaderFooterViewD4PairC6update4with3new6reason8animated0I9Callbacks11environmentyAA03AnycefD0_pSg_AA0peF11Convertible_pSgAA11ApplyReasonOSbAA06UpdateN0CAA15ListEnvironmentVtF" }, @@ -28527,7 +28570,7 @@ "key.parsed_scope.end" : 156, "key.parsed_scope.start" : 154, "key.reusingastcontext" : false, - "key.typename" : "AnyHeaderFooter", + "key.typename" : "any AnyHeaderFooter", "key.typeusr" : "$s10ListableUI15AnyHeaderFooter_pD", "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C8anyModelAA03AnyeF0_pvp" }, @@ -28915,7 +28958,7 @@ "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C3set3new6reason11visibleView15updateCallbacks4infoyAA03AnyeF0_p_AA11ApplyReasonOSo6UIViewCSgAA06UpdateM0CAA0peF11ContentInfoVtF18wantsReapplicationL_Sbvp" } ], - "key.typename" : " (PresentationState.HeaderFooterState) -> (AnyHeaderFooter, ApplyReason, UIView?, UpdateCallbacks, ApplyHeaderFooterContentInfo) -> ()", + "key.typename" : " (PresentationState.HeaderFooterState) -> (any AnyHeaderFooter, ApplyReason, UIView?, UpdateCallbacks, ApplyHeaderFooterContentInfo) -> ()", "key.typeusr" : "$s3new6reason11visibleView15updateCallbacks4infoy10ListableUI15AnyHeaderFooter_p_AF11ApplyReasonOSo6UIViewCSgAF06UpdateF0CAF0mkL11ContentInfoVtcD", "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C3set3new6reason11visibleView15updateCallbacks4infoyAA03AnyeF0_p_AA11ApplyReasonOSo6UIViewCSgAA06UpdateM0CAA0peF11ContentInfoVtF" }, @@ -29187,7 +29230,7 @@ "key.parsed_scope.end" : 19, "key.parsed_scope.start" : 19, "key.reusingastcontext" : false, - "key.typename" : "AnyItem", + "key.typename" : "any AnyItem", "key.typeusr" : "$s10ListableUI7AnyItem_pD", "key.usr" : "s:10ListableUI24AnyPresentationItemStateP8anyModelAA0cE0_pvp" }, @@ -29237,7 +29280,7 @@ "key.parsed_scope.end" : 23, "key.parsed_scope.start" : 23, "key.reusingastcontext" : false, - "key.typename" : "(class: AnyObject.Type, reuseIdentifier: String)", + "key.typename" : "(class: any AnyObject.Type, reuseIdentifier: String)", "key.typeusr" : "$syXlXp5class_SS15reuseIdentifiertD", "key.usr" : "s:10ListableUI24AnyPresentationItemStateP20cellRegistrationInfoyXlXp5class_SS15reuseIdentifiertvp" }, @@ -29263,7 +29306,7 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (UICollectionView, IndexPath, ListEnvironment) -> AnyItemCell", + "key.typename" : " (Self) -> (UICollectionView, IndexPath, ListEnvironment) -> any AnyItemCell", "key.typeusr" : "$s2in3for11environment10ListableUI11AnyItemCell_pSo16UICollectionViewC_10Foundation9IndexPathVAD15ListEnvironmentVtcD", "key.usr" : "s:10ListableUI24AnyPresentationItemStateP35dequeueAndPrepareCollectionViewCell2in3for11environmentAA0ceL0_pSo012UICollectionK0C_10Foundation9IndexPathVAA15ListEnvironmentVtF" }, @@ -29346,7 +29389,7 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (AnyItem, PresentationState.ItemUpdateReason, UpdateCallbacks, ListEnvironment) -> ()", + "key.typename" : " (Self) -> (any AnyItem, PresentationState.ItemUpdateReason, UpdateCallbacks, ListEnvironment) -> ()", "key.typeusr" : "$s3new6reason15updateCallbacks11environmenty10ListableUI7AnyItem_p_AE17PresentationStateC0I12UpdateReasonOAE0lD0CAE15ListEnvironmentVtcD", "key.usr" : "s:10ListableUI24AnyPresentationItemStateP3set3new6reason15updateCallbacks11environmentyAA0cE0_p_AA0dF0C0E12UpdateReasonOAA0mK0CAA15ListEnvironmentVtF" }, @@ -29659,7 +29702,7 @@ "key.usr" : "s:10ListableUI24AnyPresentationItemStateP22activeReorderEventInfoAA0dF0C06ActivehiJ0VSgvp" } ], - "key.typename" : "AnyPresentationItemState.Protocol", + "key.typename" : "AnyPresentationItemState.Type", "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pmD", "key.usr" : "s:10ListableUI24AnyPresentationItemStateP" }, @@ -29719,12 +29762,12 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (AnyItem) -> ()", + "key.typename" : " (Self) -> (any AnyItem) -> ()", "key.typeusr" : "$s3fory10ListableUI7AnyItem_p_tcD", "key.usr" : "s:10ListableUI30ItemContentCoordinatorDelegateP18coordinatorUpdated3foryAA03AnyC0_p_tF" } ], - "key.typename" : "ItemContentCoordinatorDelegate.Protocol", + "key.typename" : "ItemContentCoordinatorDelegate.Type", "key.typeusr" : "$s10ListableUI30ItemContentCoordinatorDelegate_pmD", "key.usr" : "s:10ListableUI30ItemContentCoordinatorDelegateP" }, @@ -29784,7 +29827,7 @@ "key.parsed_scope.start" : 81, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "ReorderingActionsDelegate?", + "key.typename" : "(any ReorderingActionsDelegate)?", "key.typeusr" : "$s10ListableUI25ReorderingActionsDelegate_pSgD", "key.usr" : "s:10ListableUI21ItemStateDependenciesV18reorderingDelegateAA017ReorderingActionsG0_pSgvp" }, @@ -29815,7 +29858,7 @@ "key.parsed_scope.start" : 82, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "ItemContentCoordinatorDelegate?", + "key.typename" : "(any ItemContentCoordinatorDelegate)?", "key.typeusr" : "$s10ListableUI30ItemContentCoordinatorDelegate_pSgD", "key.usr" : "s:10ListableUI21ItemStateDependenciesV19coordinatorDelegateAA0c18ContentCoordinatorG0_pSgvp" }, @@ -30530,7 +30573,7 @@ "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C4with12dependencies15updateCallbacks015performsContentI0AEy_xGAA0E0VyxG_AA0eD12DependenciesVAA06UpdateI0CSbtcfc11coordinatorL_11CoordinatorQzSgvp" }, { - "key.annotated_decl" : "weak var coordinatorDelegate: ItemContentCoordinatorDelegate<\/Type>?<\/Declaration>", + "key.annotated_decl" : "weak var coordinatorDelegate: (any ItemContentCoordinatorDelegate<\/Type>)?<\/Declaration>", "key.attributes" : [ { "key.attribute" : "source.decl.attribute.weak", @@ -30542,16 +30585,16 @@ "key.decl_lang" : "source.lang.swift", "key.doc.column" : 22, "key.doc.comment" : "Now that the presentation state is entirely configured, set up the final\nupdate callback, which triggers a `setNew` call, alongside informing the\n`listView` that changes have occurred.", - "key.doc.declaration" : "weak var coordinatorDelegate: ListableUI.ItemContentCoordinatorDelegate?", + "key.doc.declaration" : "weak var coordinatorDelegate: (any ListableUI.ItemContentCoordinatorDelegate)?", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.doc.full_as_xml" : "coordinatorDelegate<\/Name>s:10ListableUI17PresentationStateC04ItemD0C4with12dependencies15updateCallbacks015performsContentI0AEy_xGAA0E0VyxG_AA0eD12DependenciesVAA06UpdateI0CSbtcfc19coordinatorDelegateL_AA0ek11CoordinatorO0_pSgvp<\/USR>weak var coordinatorDelegate: ListableUI.ItemContentCoordinatorDelegate?<\/Declaration>Now that the presentation state is entirely configured, set up the final update callback, which triggers a setNew<\/codeVoice> call, alongside informing the listView<\/codeVoice> that changes have occurred.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.full_as_xml" : "coordinatorDelegate<\/Name>s:10ListableUI17PresentationStateC04ItemD0C4with12dependencies15updateCallbacks015performsContentI0AEy_xGAA0E0VyxG_AA0eD12DependenciesVAA06UpdateI0CSbtcfc19coordinatorDelegateL_AA0ek11CoordinatorO0_pSgvp<\/USR>weak var coordinatorDelegate: (any ListableUI.ItemContentCoordinatorDelegate)?<\/Declaration>Now that the presentation state is entirely configured, set up the final update callback, which triggers a setNew<\/codeVoice> call, alongside informing the listView<\/codeVoice> that changes have occurred.<\/Para><\/Abstract><\/CommentParts><\/Other>", "key.doc.line" : 172, "key.doc.name" : "coordinatorDelegate", "key.doc.type" : "Other", "key.doclength" : 221, "key.docoffset" : 4973, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> coordinatorDelegate<\/decl.name>: ItemContentCoordinatorDelegate<\/ref.protocol>?<\/decl.var.type><\/decl.var.local>", + "key.fully_annotated_decl" : "weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> coordinatorDelegate<\/decl.name>: (any ItemContentCoordinatorDelegate<\/ref.protocol>)?<\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 58, "key.line" : 172, @@ -30564,7 +30607,7 @@ "key.parsed_scope.end" : 172, "key.parsed_scope.start" : 172, "key.reusingastcontext" : false, - "key.typename" : "ItemContentCoordinatorDelegate?", + "key.typename" : "(any ItemContentCoordinatorDelegate)?", "key.typeusr" : "$s10ListableUI30ItemContentCoordinatorDelegate_pSgD", "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C4with12dependencies15updateCallbacks015performsContentI0AEy_xGAA0E0VyxG_AA0eD12DependenciesVAA06UpdateI0CSbtcfc19coordinatorDelegateL_AA0ek11CoordinatorO0_pSgvp" }, @@ -30618,7 +30661,7 @@ "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C4with12dependencies15updateCallbacks015performsContentI0AEy_xGAA0E0VyxG_AA0eD12DependenciesVAA06UpdateI0CSbtcfc4selfL0_AJSgvp" }, { - "key.annotated_decl" : "weak var coordinatorDelegate: ItemContentCoordinatorDelegate<\/Type>?<\/Declaration>", + "key.annotated_decl" : "weak var coordinatorDelegate: (any ItemContentCoordinatorDelegate<\/Type>)?<\/Declaration>", "key.attributes" : [ { "key.attribute" : "source.decl.attribute.weak", @@ -30629,7 +30672,7 @@ "key.column" : 75, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> coordinatorDelegate<\/decl.name>: ItemContentCoordinatorDelegate<\/ref.protocol>?<\/decl.var.type><\/decl.var.local>", + "key.fully_annotated_decl" : "weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> coordinatorDelegate<\/decl.name>: (any ItemContentCoordinatorDelegate<\/ref.protocol>)?<\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 19, "key.line" : 174, @@ -30644,24 +30687,24 @@ "key.reusingastcontext" : false, "key.secondary_symbols" : [ { - "key.annotated_decl" : "weak var coordinatorDelegate: ItemContentCoordinatorDelegate<\/Type>?<\/Declaration>", + "key.annotated_decl" : "weak var coordinatorDelegate: (any ItemContentCoordinatorDelegate<\/Type>)?<\/Declaration>", "key.column" : 22, "key.decl_lang" : "source.lang.swift", - "key.doc.full_as_xml" : "coordinatorDelegate<\/Name>s:10ListableUI17PresentationStateC04ItemD0C4with12dependencies15updateCallbacks015performsContentI0AEy_xGAA0E0VyxG_AA0eD12DependenciesVAA06UpdateI0CSbtcfc19coordinatorDelegateL_AA0ek11CoordinatorO0_pSgvp<\/USR>weak var coordinatorDelegate: ListableUI.ItemContentCoordinatorDelegate?<\/Declaration>Now that the presentation state is entirely configured, set up the final update callback, which triggers a setNew<\/codeVoice> call, alongside informing the listView<\/codeVoice> that changes have occurred.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.full_as_xml" : "coordinatorDelegate<\/Name>s:10ListableUI17PresentationStateC04ItemD0C4with12dependencies15updateCallbacks015performsContentI0AEy_xGAA0E0VyxG_AA0eD12DependenciesVAA06UpdateI0CSbtcfc19coordinatorDelegateL_AA0ek11CoordinatorO0_pSgvp<\/USR>weak var coordinatorDelegate: (any ListableUI.ItemContentCoordinatorDelegate)?<\/Declaration>Now that the presentation state is entirely configured, set up the final update callback, which triggers a setNew<\/codeVoice> call, alongside informing the listView<\/codeVoice> that changes have occurred.<\/Para><\/Abstract><\/CommentParts><\/Other>", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> coordinatorDelegate<\/decl.name>: ItemContentCoordinatorDelegate<\/ref.protocol>?<\/decl.var.type><\/decl.var.local>", + "key.fully_annotated_decl" : "weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> coordinatorDelegate<\/decl.name>: (any ItemContentCoordinatorDelegate<\/ref.protocol>)?<\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.ref.var.local", "key.length" : 19, "key.line" : 172, "key.modulename" : "ListableUI", "key.name" : "coordinatorDelegate", "key.offset" : 5228, - "key.typename" : "ItemContentCoordinatorDelegate?", + "key.typename" : "(any ItemContentCoordinatorDelegate)?", "key.typeusr" : "$s10ListableUI30ItemContentCoordinatorDelegate_pSgD", "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C4with12dependencies15updateCallbacks015performsContentI0AEy_xGAA0E0VyxG_AA0eD12DependenciesVAA06UpdateI0CSbtcfc19coordinatorDelegateL_AA0ek11CoordinatorO0_pSgvp" } ], - "key.typename" : "ItemContentCoordinatorDelegate?", + "key.typename" : "(any ItemContentCoordinatorDelegate)?", "key.typeusr" : "$s10ListableUI30ItemContentCoordinatorDelegate_pSgD", "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C4with12dependencies15updateCallbacks015performsContentI0AEy_xGAA0E0VyxG_AA0eD12DependenciesVAA06UpdateI0CSbtcfc19coordinatorDelegateL0_AA0ek11CoordinatorO0_pSgvp" }, @@ -30883,7 +30926,7 @@ "key.parsed_scope.end" : 244, "key.parsed_scope.start" : 242, "key.reusingastcontext" : false, - "key.typename" : "AnyItem", + "key.typename" : "any AnyItem", "key.typeusr" : "$s10ListableUI7AnyItem_pD", "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C8anyModelAA03AnyE0_pvp" }, @@ -30912,7 +30955,7 @@ "key.parsed_scope.start" : 246, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "(class: AnyObject.Type, reuseIdentifier: String)", + "key.typename" : "(class: any AnyObject.Type, reuseIdentifier: String)", "key.typeusr" : "$syXlXp5class_SS15reuseIdentifiertD", "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C20cellRegistrationInfoyXlXp5class_SS15reuseIdentifiertvp" }, @@ -31010,7 +31053,7 @@ "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C35dequeueAndPrepareCollectionViewCell2in3for11environmentAA03AnyeK0_pSo012UICollectionJ0C_10Foundation9IndexPathVAA15ListEnvironmentVtF04itemD0L_AaDVvp" } ], - "key.typename" : " (PresentationState.ItemState) -> (UICollectionView, IndexPath, ListEnvironment) -> AnyItemCell", + "key.typename" : " (PresentationState.ItemState) -> (UICollectionView, IndexPath, ListEnvironment) -> any AnyItemCell", "key.typeusr" : "$s2in3for11environment10ListableUI11AnyItemCell_pSo16UICollectionViewC_10Foundation9IndexPathVAD15ListEnvironmentVtcD", "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C35dequeueAndPrepareCollectionViewCell2in3for11environmentAA03AnyeK0_pSo012UICollectionJ0C_10Foundation9IndexPathVAA15ListEnvironmentVtF" }, @@ -31222,7 +31265,7 @@ "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C3set3new6reason15updateCallbacks11environmentyAA03AnyE0_p_AC0E12UpdateReasonOAA0mJ0CAA15ListEnvironmentVtF18wantsReapplicationL_Sbvp" } ], - "key.typename" : " (PresentationState.ItemState) -> (AnyItem, PresentationState.ItemUpdateReason, UpdateCallbacks, ListEnvironment) -> ()", + "key.typename" : " (PresentationState.ItemState) -> (any AnyItem, PresentationState.ItemUpdateReason, UpdateCallbacks, ListEnvironment) -> ()", "key.typeusr" : "$s3new6reason15updateCallbacks11environmenty10ListableUI7AnyItem_p_AE17PresentationStateC0I12UpdateReasonOAE0lD0CAE15ListEnvironmentVtcD", "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C3set3new6reason15updateCallbacks11environmentyAA03AnyE0_p_AC0E12UpdateReasonOAA0mJ0CAA15ListEnvironmentVtF" }, @@ -32414,7 +32457,7 @@ "key.parsed_scope.start" : 20, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[AnyPresentationItemState]", + "key.typename" : "[any AnyPresentationItemState]", "key.typeusr" : "$sSay10ListableUI24AnyPresentationItemState_pGD", "key.usr" : "s:10ListableUI17PresentationStateC07SectionD0C5itemsSayAA03Anyc4ItemD0_pGvp" }, @@ -32521,7 +32564,7 @@ "key.substructure" : [ ], - "key.typename" : "(PresentationState.SectionState) -> (Int) -> AnyPresentationItemState", + "key.typename" : "(PresentationState.SectionState) -> (Int) -> any AnyPresentationItemState", "key.typeusr" : "$s2at10ListableUI24AnyPresentationItemState_pSi_tcD", "key.usr" : "s:10ListableUI17PresentationStateC07SectionD0C10removeItem2atAA03AnycgD0_pSi_tF" }, @@ -32549,7 +32592,7 @@ "key.substructure" : [ ], - "key.typename" : "(PresentationState.SectionState) -> (AnyPresentationItemState, Int) -> ()", + "key.typename" : "(PresentationState.SectionState) -> (any AnyPresentationItemState, Int) -> ()", "key.typeusr" : "$s4item2aty10ListableUI24AnyPresentationItemState_p_SitcD", "key.usr" : "s:10ListableUI17PresentationStateC07SectionD0C6insert4item2atyAA03Anyc4ItemD0_p_SitF" }, @@ -32626,7 +32669,7 @@ "key.usr" : "s:10ListableUI17PresentationStateC07SectionD0C6update4with3new7changes6reason8animated12dependencies0F9CallbacksyAA0E0V_AoA13SectionedDiffV11ItemChangesVyAoA13AnyIdentifierCAA0rP0_pAU_GAA11ApplyReasonOSbAA0pD12DependenciesVAA06UpdateM0CtF11environmentL_AA15ListEnvironmentVvp" } ], - "key.typename" : "(PresentationState.SectionState) -> (Section, Section, SectionedDiff.ItemChanges, ApplyReason, Bool, ItemStateDependencies, UpdateCallbacks) -> ()", + "key.typename" : "(PresentationState.SectionState) -> (Section, Section, SectionedDiff.ItemChanges, ApplyReason, Bool, ItemStateDependencies, UpdateCallbacks) -> ()", "key.typeusr" : "$s4with3new7changes6reason8animated12dependencies15updateCallbacksy10ListableUI7SectionV_AjH13SectionedDiffV11ItemChangesVyAjH13AnyIdentifierCAH0pN0_pAP_GAH11ApplyReasonOSbAH0N17StateDependenciesVAH06UpdateH0CtcD", "key.usr" : "s:10ListableUI17PresentationStateC07SectionD0C6update4with3new7changes6reason8animated12dependencies0F9CallbacksyAA0E0V_AoA13SectionedDiffV11ItemChangesVyAoA13AnyIdentifierCAA0rP0_pAU_GAA11ApplyReasonOSbAA0pD12DependenciesVAA06UpdateM0CtF" }, @@ -32682,7 +32725,7 @@ "key.substructure" : [ ], - "key.typename" : "(PresentationState.SectionState.Type) -> (AnyHeaderFooterConvertible?, SupplementaryKind, Bool) -> AnyPresentationHeaderFooterState?", + "key.typename" : "(PresentationState.SectionState.Type) -> ((any AnyHeaderFooterConvertible)?, SupplementaryKind, Bool) -> (any AnyPresentationHeaderFooterState)?", "key.typeusr" : "$s4with4kind24performsContentCallbacks10ListableUI32AnyPresentationHeaderFooterState_pSgAD0hjK11Convertible_pSg_AD17SupplementaryKindOSbtcD", "key.usr" : "s:10ListableUI17PresentationStateC07SectionD0C015newHeaderFooterD04with4kind24performsContentCallbacksAA03AnycghD0_pSgAA0ngH11Convertible_pSg_AA17SupplementaryKindOSbtFZ" }, @@ -32709,21 +32752,21 @@ "key.reusingastcontext" : false, "key.substructure" : [ { - "key.annotated_decl" : "let new: AnyHeaderFooter<\/Type>?<\/Declaration>", + "key.annotated_decl" : "let new: (any AnyHeaderFooter<\/Type>)?<\/Declaration>", "key.column" : 17, "key.decl_lang" : "source.lang.swift", "key.doc.column" : 17, "key.doc.comment" : "Eagerly convert the header\/footer to the correct final type, so the `type(of:)` check later\non in the function is comparing `HeaderFooter` types.", - "key.doc.declaration" : "let new: ListableUI.AnyHeaderFooter?", + "key.doc.declaration" : "let new: (any ListableUI.AnyHeaderFooter)?", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.SectionState.swift", - "key.doc.full_as_xml" : "new<\/Name>s:10ListableUI17PresentationStateC07SectionD0C012headerFooterD07current3new4kind24performsContentCallbacksAA03Anyc6HeadergD0_pSgAL_AA0noG11Convertible_pSgAA17SupplementaryKindOSbtFZAHL0_AA0noG0_pSgvp<\/USR>let new: ListableUI.AnyHeaderFooter?<\/Declaration>Eagerly convert the header\/footer to the correct final type, so the type(of:)<\/codeVoice> check later on in the function is comparing HeaderFooter<Content><\/codeVoice> types.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.full_as_xml" : "new<\/Name>s:10ListableUI17PresentationStateC07SectionD0C012headerFooterD07current3new4kind24performsContentCallbacksAA03Anyc6HeadergD0_pSgAL_AA0noG11Convertible_pSgAA17SupplementaryKindOSbtFZAHL0_AA0noG0_pSgvp<\/USR>let new: (any ListableUI.AnyHeaderFooter)?<\/Declaration>Eagerly convert the header\/footer to the correct final type, so the type(of:)<\/codeVoice> check later on in the function is comparing HeaderFooter<Content><\/codeVoice> types.<\/Para><\/Abstract><\/CommentParts><\/Other>", "key.doc.line" : 180, "key.doc.name" : "new", "key.doc.type" : "Other", "key.doclength" : 175, "key.docoffset" : 6269, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.SectionState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> new<\/decl.name>: AnyHeaderFooter<\/ref.protocol>?<\/decl.var.type><\/decl.var.local>", + "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> new<\/decl.name>: (any AnyHeaderFooter<\/ref.protocol>)?<\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 34, "key.line" : 180, @@ -32736,12 +32779,12 @@ "key.parsed_scope.end" : 180, "key.parsed_scope.start" : 180, "key.reusingastcontext" : false, - "key.typename" : "AnyHeaderFooter?", + "key.typename" : "(any AnyHeaderFooter)?", "key.typeusr" : "$s10ListableUI15AnyHeaderFooter_pSgD", "key.usr" : "s:10ListableUI17PresentationStateC07SectionD0C012headerFooterD07current3new4kind24performsContentCallbacksAA03Anyc6HeadergD0_pSgAL_AA0noG11Convertible_pSgAA17SupplementaryKindOSbtFZAHL0_AA0noG0_pSgvp" } ], - "key.typename" : "(PresentationState.SectionState.Type) -> (AnyPresentationHeaderFooterState?, AnyHeaderFooterConvertible?, SupplementaryKind, Bool) -> AnyPresentationHeaderFooterState?", + "key.typename" : "(PresentationState.SectionState.Type) -> ((any AnyPresentationHeaderFooterState)?, (any AnyHeaderFooterConvertible)?, SupplementaryKind, Bool) -> (any AnyPresentationHeaderFooterState)?", "key.typeusr" : "$s7current3new4kind24performsContentCallbacks10ListableUI32AnyPresentationHeaderFooterState_pSgAG_AE0ikL11Convertible_pSgAE17SupplementaryKindOSbtcD", "key.usr" : "s:10ListableUI17PresentationStateC07SectionD0C012headerFooterD07current3new4kind24performsContentCallbacksAA03Anyc6HeadergD0_pSgAL_AA0noG11Convertible_pSgAA17SupplementaryKindOSbtFZ" } @@ -33250,7 +33293,7 @@ "key.parsed_scope.end" : 151, "key.parsed_scope.start" : 143, "key.reusingastcontext" : false, - "key.typename" : "[AnyPresentationItemState]", + "key.typename" : "[any AnyPresentationItemState]", "key.typeusr" : "$sSay10ListableUI24AnyPresentationItemState_pGD", "key.usr" : "s:10ListableUI17PresentationStateC13selectedItemsSayAA03Anyc4ItemD0_pGvp" }, @@ -33272,7 +33315,7 @@ "key.parsed_scope.end" : 144, "key.parsed_scope.start" : 144, "key.reusingastcontext" : false, - "key.typename" : "[[AnyPresentationItemState]]", + "key.typename" : "[[any AnyPresentationItemState]]", "key.typeusr" : "$sSaySay10ListableUI24AnyPresentationItemState_pGGD", "key.usr" : "s:10ListableUI17PresentationStateC13selectedItemsSayAA03Anyc4ItemD0_pGvg5itemsL_SayAFGvp" }, @@ -33396,11 +33439,11 @@ "key.usr" : "s:10ListableUI17PresentationStateC4item2atAA03Anyc4ItemD0_p10Foundation9IndexPathV_tF7sectionL_AC07SectionD0Cvp" }, { - "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>", + "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", "key.column" : 13, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", + "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 40, "key.line" : 178, @@ -33413,12 +33456,12 @@ "key.parsed_scope.end" : 178, "key.parsed_scope.start" : 178, "key.reusingastcontext" : false, - "key.typename" : "AnyPresentationItemState", + "key.typename" : "any AnyPresentationItemState", "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", "key.usr" : "s:10ListableUI17PresentationStateC4item2atAA03Anyc4ItemD0_p10Foundation9IndexPathV_tFADL_AaF_pvp" } ], - "key.typename" : "(PresentationState) -> (IndexPath) -> AnyPresentationItemState", + "key.typename" : "(PresentationState) -> (IndexPath) -> any AnyPresentationItemState", "key.typeusr" : "$s2at10ListableUI24AnyPresentationItemState_p10Foundation9IndexPathV_tcD", "key.usr" : "s:10ListableUI17PresentationStateC4item2atAA03Anyc4ItemD0_p10Foundation9IndexPathV_tF" }, @@ -33561,7 +33604,7 @@ "key.substructure" : [ ], - "key.typename" : "(PresentationState) -> (AnyPresentationItemState) -> IndexPath?", + "key.typename" : "(PresentationState) -> (any AnyPresentationItemState) -> IndexPath?", "key.typeusr" : "$s3for10Foundation9IndexPathVSg10ListableUI24AnyPresentationItemState_p_tcD", "key.usr" : "s:10ListableUI17PresentationStateC9indexPath3for10Foundation05IndexF0VSgAA03Anyc4ItemD0_p_tF" }, @@ -33596,7 +33639,7 @@ "key.substructure" : [ ], - "key.typename" : "(PresentationState) -> ((IndexPath, AnyPresentationItemState) -> ()) -> ()", + "key.typename" : "(PresentationState) -> ((IndexPath, any AnyPresentationItemState) -> ()) -> ()", "key.typeusr" : "$syyy10Foundation9IndexPathV_10ListableUI24AnyPresentationItemState_ptXEcD", "key.usr" : "s:10ListableUI17PresentationStateC11forEachItemyyy10Foundation9IndexPathV_AA03AnycgD0_ptXEF" }, @@ -33629,11 +33672,11 @@ "key.reusingastcontext" : false, "key.substructure" : [ { - "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>", + "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", "key.column" : 13, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", + "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 30, "key.line" : 239, @@ -33646,7 +33689,7 @@ "key.parsed_scope.end" : 239, "key.parsed_scope.start" : 239, "key.reusingastcontext" : false, - "key.typename" : "AnyPresentationItemState", + "key.typename" : "any AnyPresentationItemState", "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", "key.usr" : "s:10ListableUI17PresentationStateC8moveItem4from2toy10Foundation9IndexPathV_AItF4itemL_AA03AnycfD0_pvp" } @@ -33712,7 +33755,7 @@ "key.usr" : "s:10ListableUI17PresentationStateC6remove2atAA03Anyc4ItemD0_p10Foundation9IndexPathV_tF7sectionL_AC07SectionD0Cvp" } ], - "key.typename" : "(PresentationState) -> (IndexPath) -> AnyPresentationItemState", + "key.typename" : "(PresentationState) -> (IndexPath) -> any AnyPresentationItemState", "key.typeusr" : "$s2at10ListableUI24AnyPresentationItemState_p10Foundation9IndexPathV_tcD", "key.usr" : "s:10ListableUI17PresentationStateC6remove2atAA03Anyc4ItemD0_p10Foundation9IndexPathV_tF" }, @@ -33745,7 +33788,7 @@ "key.substructure" : [ ], - "key.typename" : "(PresentationState) -> (AnyPresentationItemState) -> IndexPath?", + "key.typename" : "(PresentationState) -> (any AnyPresentationItemState) -> IndexPath?", "key.typeusr" : "$s4item10Foundation9IndexPathVSg10ListableUI24AnyPresentationItemState_p_tcD", "key.usr" : "s:10ListableUI17PresentationStateC6remove4item10Foundation9IndexPathVSgAA03Anyc4ItemD0_p_tF" }, @@ -33794,7 +33837,7 @@ "key.usr" : "s:10ListableUI17PresentationStateC6insert4item2atyAA03Anyc4ItemD0_p_10Foundation9IndexPathVtF7sectionL_AC07SectionD0Cvp" } ], - "key.typename" : "(PresentationState) -> (AnyPresentationItemState, IndexPath) -> ()", + "key.typename" : "(PresentationState) -> (any AnyPresentationItemState, IndexPath) -> ()", "key.typeusr" : "$s4item2aty10ListableUI24AnyPresentationItemState_p_10Foundation9IndexPathVtcD", "key.usr" : "s:10ListableUI17PresentationStateC6insert4item2atyAA03Anyc4ItemD0_p_10Foundation9IndexPathVtF" }, @@ -33907,7 +33950,7 @@ "key.usr" : "s:10ListableUI17PresentationStateC6update4with5slice6reason8animated12dependencies0E9Callbacks8loggableyAA13SectionedDiffVyAA7SectionVAA13AnyIdentifierCAA0P4Item_pAQG_AA7ContentV5SliceVAA11ApplyReasonOSbAA0rD12DependenciesVAA06UpdateK0CAA16SignpostLoggable_pSgtF11environmentL_AA15ListEnvironmentVvp" } ], - "key.typename" : "(PresentationState) -> (SectionedDiff, Content.Slice, ApplyReason, Bool, ItemStateDependencies, UpdateCallbacks, SignpostLoggable?) -> ()", + "key.typename" : "(PresentationState) -> (SectionedDiff, Content.Slice, ApplyReason, Bool, ItemStateDependencies, UpdateCallbacks, (any SignpostLoggable)?) -> ()", "key.typeusr" : "$s4with5slice6reason8animated12dependencies15updateCallbacks8loggabley10ListableUI13SectionedDiffVyAH7SectionVAH13AnyIdentifierCAH0N4Item_pANG_AH7ContentV5SliceVAH11ApplyReasonOSbAH0P17StateDependenciesVAH06UpdateG0CAH16SignpostLoggable_pSgtcD", "key.usr" : "s:10ListableUI17PresentationStateC6update4with5slice6reason8animated12dependencies0E9Callbacks8loggableyAA13SectionedDiffVyAA7SectionVAA13AnyIdentifierCAA0P4Item_pAQG_AA7ContentV5SliceVAA11ApplyReasonOSbAA0rD12DependenciesVAA06UpdateK0CAA16SignpostLoggable_pSgtF" }, @@ -34093,7 +34136,7 @@ "key.parsed_scope.end" : 471, "key.parsed_scope.start" : 471, "key.reusingastcontext" : false, - "key.typename" : "(class: AnyObject.Type, reuseIdentifier: String)", + "key.typename" : "(class: any AnyObject.Type, reuseIdentifier: String)", "key.typeusr" : "$syXlXp5class_SS15reuseIdentifiertD", "key.usr" : "s:10ListableUI17PresentationStateC12registerCell3for2inyAA03Anyc4ItemD0_p_So16UICollectionViewCtF4infoL_yXlXp5class_SS15reuseIdentifiertvp" }, @@ -34120,7 +34163,7 @@ "key.usr" : "s:10ListableUI17PresentationStateC12registerCell3for2inyAA03Anyc4ItemD0_p_So16UICollectionViewCtF10identifierL_SOvp" } ], - "key.typename" : "(PresentationState) -> (AnyPresentationItemState, UICollectionView) -> ()", + "key.typename" : "(PresentationState) -> (any AnyPresentationItemState, UICollectionView) -> ()", "key.typeusr" : "$s3for2iny10ListableUI24AnyPresentationItemState_p_So16UICollectionViewCtcD", "key.usr" : "s:10ListableUI17PresentationStateC12registerCell3for2inyAA03Anyc4ItemD0_p_So16UICollectionViewCtF" } @@ -34649,7 +34692,7 @@ "key.bodyoffset" : 20611, "key.column" : 12, "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.2.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIScrollView.h", + "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.5.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIScrollView.h", "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @_nonSendable(_assumed)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> class<\/syntaxtype.keyword> UIScrollView<\/decl.name> : UIView<\/ref.class>, NSCoding<\/ref.protocol>, UIFocusItemScrollableContainer<\/ref.protocol><\/decl.class>", "key.is_system" : true, "key.kind" : "source.lang.swift.decl.extension", @@ -35907,11 +35950,11 @@ "key.reusingastcontext" : false, "key.substructure" : [ { - "key.annotated_decl" : "let old: AnyPresentationHeaderFooterState<\/Type>?<\/Declaration>", + "key.annotated_decl" : "let old: (any AnyPresentationHeaderFooterState<\/Type>)?<\/Declaration>", "key.column" : 13, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: AnyPresentationHeaderFooterState<\/ref.protocol>?<\/decl.var.type><\/decl.var.local>", + "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: (any AnyPresentationHeaderFooterState<\/ref.protocol>)?<\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 22, "key.line" : 82, @@ -35924,7 +35967,7 @@ "key.parsed_scope.end" : 82, "key.parsed_scope.start" : 82, "key.reusingastcontext" : false, - "key.typename" : "AnyPresentationHeaderFooterState?", + "key.typename" : "(any AnyPresentationHeaderFooterState)?", "key.typeusr" : "$s10ListableUI32AnyPresentationHeaderFooterState_pSgD", "key.usr" : "s:10ListableUI26SupplementaryContainerViewC15setHeaderFooter_8animatedyAA015AnyPresentationgH5State_pSg_SbtF3oldL_AGvp" }, @@ -35951,7 +35994,7 @@ "key.usr" : "s:10ListableUI26SupplementaryContainerViewC15setHeaderFooter_8animatedyAA015AnyPresentationgH5State_pSg_SbtF5cacheL_AA08ReusableE5CacheCvp" } ], - "key.typename" : "(SupplementaryContainerView) -> (AnyPresentationHeaderFooterState?, Bool) -> ()", + "key.typename" : "(SupplementaryContainerView) -> ((any AnyPresentationHeaderFooterState)?, Bool) -> ()", "key.typeusr" : "$s_8animatedy10ListableUI32AnyPresentationHeaderFooterState_pSg_SbtcD", "key.usr" : "s:10ListableUI26SupplementaryContainerViewC15setHeaderFooter_8animatedyAA015AnyPresentationgH5State_pSg_SbtF" }, @@ -35982,7 +36025,7 @@ "key.parsed_scope.start" : 105, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "AnyPresentationHeaderFooterState?", + "key.typename" : "(any AnyPresentationHeaderFooterState)?", "key.typeusr" : "$s10ListableUI32AnyPresentationHeaderFooterState_pSgD", "key.usr" : "s:10ListableUI26SupplementaryContainerViewC12headerFooterAA021AnyPresentationHeaderG5State_pSgvp" }, @@ -37847,7 +37890,7 @@ }, { "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "public struct SwipeActionsViewStyle : Equatable<\/Declaration>", + "key.annotated_decl" : "public struct SwipeActionsViewStyle : Equatable<\/Type><\/Declaration>", "key.attributes" : [ { "key.attribute" : "source.decl.attribute.private", @@ -37860,7 +37903,7 @@ "key.column" : 15, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> SwipeActionsViewStyle<\/decl.name> : Equatable<\/decl.struct>", + "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> SwipeActionsViewStyle<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", "key.kind" : "source.lang.swift.decl.extension", "key.length" : 963, "key.line" : 3, @@ -37952,7 +37995,7 @@ "key.bodyoffset" : 12025, "key.column" : 64, "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.2.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIGeometry.h", + "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.5.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIGeometry.h", "key.fully_annotated_decl" : "@_nonSendable(_assumed)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> NSDirectionalEdgeInsets<\/decl.name> : @unchecked Sendable<\/ref.protocol><\/decl.struct>", "key.is_system" : true, "key.kind" : "source.lang.swift.decl.extension", @@ -38223,7 +38266,21 @@ "key.annotated_decl" : "case sizeThatFits<\/Declaration>", "key.column" : 14, "key.decl_lang" : "source.lang.swift", + "key.doc.column" : 14, "key.doc.comment" : "Each button receives the amount of space required to fit its contents.\n- Note: If the total width exceeds the available width, the buttons _will not_", + "key.doc.declaration" : "", + "key.doc.discussion" : [ + { + "Note" : "" + } + ], + "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", + "key.doc.full_as_xml" : "sizeThatFits<\/Name>s:10ListableUI21SwipeActionsViewStyleV12ButtonSizingO12sizeThatFitsyA2EmF<\/USR><\/Declaration>Each button receives the amount of space required to fit its contents.<\/Para><\/Abstract>If the total width exceeds the available width, the buttons will not<\/emphasis><\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", + "key.doc.line" : 18, + "key.doc.name" : "sizeThatFits", + "key.doc.type" : "Other", + "key.doclength" : 166, + "key.docoffset" : 534, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> sizeThatFits<\/decl.name><\/decl.enumelement>", "key.kind" : "source.lang.swift.decl.enumelement", @@ -39023,7 +39080,7 @@ "key.bodyoffset" : 148, "key.column" : 64, "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.2.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIGeometry.h", + "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.5.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIGeometry.h", "key.fully_annotated_decl" : "@_nonSendable(_assumed)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> UIEdgeInsets<\/decl.name> : @unchecked Sendable<\/ref.protocol><\/decl.struct>", "key.is_system" : true, "key.kind" : "source.lang.swift.decl.extension", @@ -39085,7 +39142,7 @@ "key.bodyoffset" : 136, "key.column" : 12, "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.2.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIView.h", + "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.5.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIView.h", "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @_nonSendable(_assumed)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> class<\/syntaxtype.keyword> UIView<\/decl.name> : UIResponder<\/ref.class>, NSCoding<\/ref.protocol>, UIAppearance<\/ref.protocol>, UIAppearanceContainer<\/ref.protocol>, UIDynamicItem<\/ref.protocol>, UITraitEnvironment<\/ref.protocol>, UICoordinateSpace<\/ref.protocol>, UIFocusItem<\/ref.protocol>, UIFocusItemContainer<\/ref.protocol>, CALayerDelegate<\/ref.protocol><\/decl.class>", "key.is_system" : true, "key.kind" : "source.lang.swift.decl.extension", @@ -39250,7 +39307,7 @@ "key.bodyoffset" : 146, "key.column" : 12, "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.2.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIViewPropertyAnimator.h", + "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.5.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIViewPropertyAnimator.h", "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @_nonSendable(_assumed)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> class<\/syntaxtype.keyword> UIViewPropertyAnimator<\/decl.name> : NSObject<\/ref.class>, UIViewImplicitlyAnimating<\/ref.protocol>, NSCopying<\/ref.protocol><\/decl.class>", "key.is_system" : true, "key.kind" : "source.lang.swift.decl.extension", @@ -39723,7 +39780,7 @@ "key.usr" : "s:10ListableUI7AnyItemP22reappliesToVisibleViewAA09ReappliesfgH0Ovp" } ], - "key.typename" : "AnyItem.Protocol", + "key.typename" : "AnyItem.Type", "key.typeusr" : "$s10ListableUI7AnyItem_pmD", "key.usr" : "s:10ListableUI7AnyItemP" }, @@ -39778,7 +39835,7 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (AnyItem) -> Bool", + "key.typename" : " (Self) -> (any AnyItem) -> Bool", "key.typeusr" : "$s10comparedToSb10ListableUI7AnyItem_p_tcD", "key.usr" : "s:10ListableUI16AnyItem_InternalP11anyWasMoved10comparedToSbAA0cD0_p_tF" }, @@ -39804,7 +39861,7 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (AnyItem) -> Bool", + "key.typename" : " (Self) -> (any AnyItem) -> Bool", "key.typeusr" : "$s2toSb10ListableUI7AnyItem_p_tcD", "key.usr" : "s:10ListableUI16AnyItem_InternalP15anyIsEquivalent2toSbAA0cD0_p_tF" }, @@ -39835,7 +39892,7 @@ "key.usr" : "s:10ListableUI16AnyItem_InternalP015newPresentationD5State4with15updateCallbacks015performsContentK0ypAA0dH12DependenciesV_AA06UpdateK0CSbtF" } ], - "key.typename" : "AnyItem_Internal.Protocol", + "key.typename" : "AnyItem_Internal.Type", "key.typeusr" : "$s10ListableUI16AnyItem_Internal_pmD", "key.usr" : "s:10ListableUI16AnyItem_InternalP" } @@ -39929,12 +39986,12 @@ "key.parsed_scope.end" : 36, "key.parsed_scope.start" : 36, "key.reusingastcontext" : false, - "key.typename" : " (Self) -> () -> AnyItem", + "key.typename" : " (Self) -> () -> any AnyItem", "key.typeusr" : "$s10ListableUI7AnyItem_pycD", "key.usr" : "s:10ListableUI18AnyItemConvertibleP02tocD0AA0cD0_pyF" } ], - "key.typename" : "AnyItemConvertible.Protocol", + "key.typename" : "AnyItemConvertible.Type", "key.typeusr" : "$s10ListableUI18AnyItemConvertible_pmD", "key.usr" : "s:10ListableUI18AnyItemConvertibleP" } @@ -41775,7 +41832,7 @@ "key.parsed_scope.end" : 155, "key.parsed_scope.start" : 153, "key.reusingastcontext" : false, - "key.typename" : " (Item) -> () -> AnyItem", + "key.typename" : " (Item) -> () -> any AnyItem", "key.typeusr" : "$s10ListableUI7AnyItem_pycD", "key.usr" : "s:10ListableUI18AnyItemConvertibleP02tocD0AA0cD0_pyF" }, @@ -41821,7 +41878,7 @@ "key.substructure" : [ ], - "key.typename" : " (Item) -> (AnyItem) -> Bool", + "key.typename" : " (Item) -> (any AnyItem) -> Bool", "key.typeusr" : "$s2toSb10ListableUI7AnyItem_p_tcD", "key.usr" : "s:10ListableUI4ItemV15anyIsEquivalent2toSbAA03AnyC0_p_tF" }, @@ -41861,7 +41918,7 @@ "key.substructure" : [ ], - "key.typename" : " (Item) -> (AnyItem) -> Bool", + "key.typename" : " (Item) -> (any AnyItem) -> Bool", "key.typeusr" : "$s10comparedToSb10ListableUI7AnyItem_p_tcD", "key.usr" : "s:10ListableUI4ItemV11anyWasMoved10comparedToSbAA03AnyC0_p_tF" }, @@ -42003,7 +42060,7 @@ "key.usr" : "s:10ListableUI11ItemContentPAAE4with6sizing7layouts14selectionStyle25insertAndRemoveAnimations19leadingSwipeActions08trailingoP010reordering14onWasReordered0S7Display0s3EndV00S6Select0S8Deselect0S6Insert0sL00S4Move0S6UpdateAA0C0VyxGAA6SizingOSg_AA0C7LayoutsVSgAA0c9SelectionI0OSgAA0czklM0VSgAA0oP13ConfigurationVSgA10_AA0C10ReorderingVSgyAW_A12_6ResultVtcSgyAV02OnV0Vyx_GcSgyAV02OnwV0Vyx_GcSgyAV02OnX0Vyx_GcSgyAV02OnY0Vyx_GcSgyAV02OnZ0Vyx_GcSgyAV02OnL0Vyx_GcSgyAV6OnMoveVyx_GcSgyAV8OnUpdateVyx_GcSgtF" } ], - "key.typename" : "ItemContent.Protocol", + "key.typename" : "ItemContent.Type", "key.typeusr" : "$s10ListableUI11ItemContent_pmD", "key.usr" : "s:10ListableUI11ItemContentP" }, @@ -42102,7 +42159,7 @@ "key.substructure" : [ { "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct Item<Content> : AnyItem, AnyItemConvertible where Content<\/Type> : ItemContent<\/Type><\/Declaration>", + "key.annotated_decl" : "public struct Item<Content> : AnyItem<\/Type>, AnyItemConvertible<\/Type> where Content<\/Type> : ItemContent<\/Type><\/Declaration>", "key.attributes" : [ { "key.attribute" : "source.decl.attribute.public", @@ -42133,7 +42190,7 @@ "key.doc.name" : "Item", "key.doc.type" : "Class", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Item<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyItem, AnyItemConvertible where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", + "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Item<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyItem<\/ref.protocol>, AnyItemConvertible<\/ref.protocol> where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", "key.kind" : "source.lang.swift.decl.extension", "key.length" : 1447, "key.line" : 22, @@ -44158,7 +44215,7 @@ "key.usr" : "s:10ListableUI11ItemContentP15makeCoordinator7actions4info0F0QzAA0cdF7ActionsCyxG_AA0cdF4InfoCyxGtF" } ], - "key.typename" : "ItemContent.Protocol", + "key.typename" : "ItemContent.Type", "key.typeusr" : "$s10ListableUI11ItemContent_pmD", "key.usr" : "s:10ListableUI11ItemContentP" }, @@ -44253,12 +44310,12 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> () -> AnyItem", + "key.typename" : " (Self) -> () -> any AnyItem", "key.typeusr" : "$s10ListableUI7AnyItem_pycD", "key.usr" : "s:10ListableUI18AnyItemConvertibleP02tocD0AA0cD0_pyF" } ], - "key.typename" : "ItemContent.Protocol", + "key.typename" : "ItemContent.Type", "key.typeusr" : "$s10ListableUI11ItemContent_pmD", "key.usr" : "s:10ListableUI11ItemContentP" }, @@ -45176,7 +45233,7 @@ "key.usr" : "s:10ListableUI11ItemContentP17swipeActionsStyleAA05Swipef4ViewG0VSgvp" } ], - "key.typename" : "ItemContent.Protocol", + "key.typename" : "ItemContent.Type", "key.typeusr" : "$s10ListableUI11ItemContent_pmD", "key.usr" : "s:10ListableUI11ItemContentP" }, @@ -45274,7 +45331,7 @@ "key.usr" : "s:10ListableUI11ItemContentPAASQRzrlE12isEquivalent2toSbx_tF" } ], - "key.typename" : "ItemContent.Protocol", + "key.typename" : "ItemContent.Type", "key.typeusr" : "$s10ListableUI11ItemContent_pmD", "key.usr" : "s:10ListableUI11ItemContentP" }, @@ -45466,7 +45523,7 @@ "key.usr" : "s:10ListableUI11ItemContentPAAE10identifier4withAA10IdentifierCyx0G5ValueQzGAI_tFZ" } ], - "key.typename" : "ItemContent.Protocol", + "key.typename" : "ItemContent.Type", "key.typeusr" : "$s10ListableUI11ItemContent_pmD", "key.usr" : "s:10ListableUI11ItemContentP" }, @@ -45605,7 +45662,7 @@ "key.usr" : "s:10ListableUI11ItemContentP15identifierValue010IdentifierF0Qzvp" } ], - "key.typename" : "ItemContent.Protocol", + "key.typename" : "ItemContent.Type", "key.typeusr" : "$s10ListableUI11ItemContent_pmD", "key.usr" : "s:10ListableUI11ItemContentP" }, @@ -45717,7 +45774,7 @@ "key.usr" : "s:10ListableUI11ItemContentP8wasMoved10comparedToSbx_tF" } ], - "key.typename" : "ItemContent.Protocol", + "key.typename" : "ItemContent.Type", "key.typeusr" : "$s10ListableUI11ItemContent_pmD", "key.usr" : "s:10ListableUI11ItemContentP" }, @@ -45823,7 +45880,7 @@ "key.usr" : "s:10ListableUI11ItemContentP22reappliesToVisibleViewAA09ReappliesfgH0Ovp" } ], - "key.typename" : "ItemContent.Protocol", + "key.typename" : "ItemContent.Type", "key.typeusr" : "$s10ListableUI11ItemContent_pmD", "key.usr" : "s:10ListableUI11ItemContentP" }, @@ -45923,7 +45980,7 @@ "key.usr" : "s:10ListableUI11ItemContentP07defaultC10PropertiesAA07DefaultcF0VyxGvp" } ], - "key.typename" : "ItemContent.Protocol", + "key.typename" : "ItemContent.Type", "key.typeusr" : "$s10ListableUI11ItemContent_pmD", "key.usr" : "s:10ListableUI11ItemContentP" }, @@ -46026,7 +46083,7 @@ "key.usr" : "s:10ListableUI11ItemContentP15makeCoordinator7actions4info0F0QzAA0cdF7ActionsCyxG_AA0cdF4InfoCyxGtF" } ], - "key.typename" : "ItemContent.Protocol", + "key.typename" : "ItemContent.Type", "key.typeusr" : "$s10ListableUI11ItemContent_pmD", "key.usr" : "s:10ListableUI11ItemContentP" }, @@ -46129,7 +46186,7 @@ "key.usr" : "s:10ListableUI11ItemContentP25contentAreaViewProperties4withAA0gH0VAA05ApplycD4InfoV_tF" } ], - "key.typename" : "ItemContent.Protocol", + "key.typename" : "ItemContent.Type", "key.typeusr" : "$s10ListableUI11ItemContent_pmD", "key.usr" : "s:10ListableUI11ItemContentP" }, @@ -46235,7 +46292,7 @@ "key.usr" : "s:10ListableUI11ItemContentP28createReusableBackgroundView5frame0gH0QzSo6CGRectV_tFZ" } ], - "key.typename" : "ItemContent.Protocol", + "key.typename" : "ItemContent.Type", "key.typeusr" : "$s10ListableUI11ItemContent_pmD", "key.usr" : "s:10ListableUI11ItemContentP" }, @@ -46347,7 +46404,7 @@ "key.usr" : "s:10ListableUI11ItemContentP36createReusableSelectedBackgroundView5frame0ghI0QzSo6CGRectV_tFZ" } ], - "key.typename" : "ItemContent.Protocol", + "key.typename" : "ItemContent.Type", "key.typeusr" : "$s10ListableUI11ItemContent_pmD", "key.usr" : "s:10ListableUI11ItemContentP" }, @@ -46453,7 +46510,7 @@ "key.usr" : "s:10ListableUI11ItemContentP35createReusableOverlayDecorationView5frame0ghI0QzSo6CGRectV_tFZ" } ], - "key.typename" : "ItemContent.Protocol", + "key.typename" : "ItemContent.Type", "key.typeusr" : "$s10ListableUI11ItemContent_pmD", "key.usr" : "s:10ListableUI11ItemContentP" }, @@ -46559,7 +46616,7 @@ "key.usr" : "s:10ListableUI11ItemContentP36createReusableUnderlayDecorationView5frame0ghI0QzSo6CGRectV_tFZ" } ], - "key.typename" : "ItemContent.Protocol", + "key.typename" : "ItemContent.Type", "key.typeusr" : "$s10ListableUI11ItemContent_pmD", "key.usr" : "s:10ListableUI11ItemContentP" } @@ -47126,7 +47183,7 @@ "key.usr" : "s:10ListableUI22ItemContentCoordinatorP13wasDeselectedyyF" } ], - "key.typename" : "ItemContentCoordinator.Protocol", + "key.typename" : "ItemContentCoordinator.Type", "key.typeusr" : "$s10ListableUI22ItemContentCoordinator_pmD", "key.usr" : "s:10ListableUI22ItemContentCoordinatorP" }, @@ -47556,7 +47613,7 @@ "key.usr" : "s:10ListableUI22ItemContentCoordinatorP13wasDeselectedyyF" } ], - "key.typename" : "ItemContentCoordinator.Protocol", + "key.typename" : "ItemContentCoordinator.Type", "key.typeusr" : "$s10ListableUI22ItemContentCoordinator_pmD", "key.usr" : "s:10ListableUI22ItemContentCoordinatorP" }, @@ -49030,7 +49087,7 @@ "key.usr" : "s:10ListableUI16ItemLayoutsValueP07defaultE0xvpZ" } ], - "key.typename" : "ItemLayoutsValue.Protocol", + "key.typename" : "ItemLayoutsValue.Type", "key.typeusr" : "$s10ListableUI16ItemLayoutsValue_pmD", "key.usr" : "s:10ListableUI16ItemLayoutsValueP" }, @@ -51669,7 +51726,7 @@ "key.usr" : "s:10ListableUI28KeyboardCurrentFrameProviderP07currentE02inAA0cE0OSgSo6UIViewC_tF" } ], - "key.typename" : "KeyboardCurrentFrameProvider.Protocol", + "key.typename" : "KeyboardCurrentFrameProvider.Type", "key.typeusr" : "$s10ListableUI28KeyboardCurrentFrameProvider_pmD", "key.usr" : "s:10ListableUI28KeyboardCurrentFrameProviderP" }, @@ -51929,7 +51986,7 @@ "key.usr" : "s:10ListableUI24KeyboardObserverDelegateP23keyboardFrameWillChange3for17animationDuration0K5CurveyAA0cD0C_SdSo015UIViewAnimationM0VtF" } ], - "key.typename" : "KeyboardObserverDelegate.Protocol", + "key.typename" : "KeyboardObserverDelegate.Type", "key.typeusr" : "$s10ListableUI24KeyboardObserverDelegate_pmD", "key.usr" : "s:10ListableUI24KeyboardObserverDelegateP" }, @@ -52197,7 +52254,7 @@ "key.parsed_scope.start" : 77, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "KeyboardObserverDelegate?", + "key.typename" : "(any KeyboardObserverDelegate)?", "key.typeusr" : "$s10ListableUI24KeyboardObserverDelegate_pSgD", "key.usr" : "s:10ListableUI16KeyboardObserverC8DelegateV5valueAA0cdE0_pSgvp" } @@ -52316,7 +52373,7 @@ "key.substructure" : [ ], - "key.typename" : "(KeyboardObserver) -> (KeyboardObserverDelegate) -> ()", + "key.typename" : "(KeyboardObserver) -> (any KeyboardObserverDelegate) -> ()", "key.typeusr" : "$s8delegatey10ListableUI24KeyboardObserverDelegate_p_tcD", "key.usr" : "s:10ListableUI16KeyboardObserverC3add8delegateyAA0cD8Delegate_p_tF" }, @@ -52351,7 +52408,7 @@ "key.substructure" : [ ], - "key.typename" : "(KeyboardObserver) -> (KeyboardObserverDelegate) -> ()", + "key.typename" : "(KeyboardObserver) -> (any KeyboardObserverDelegate) -> ()", "key.typeusr" : "$s8delegatey10ListableUI24KeyboardObserverDelegate_p_tcD", "key.usr" : "s:10ListableUI16KeyboardObserverC6remove8delegateyAA0cD8Delegate_p_tF" }, @@ -53270,7 +53327,7 @@ "key.parsed_scope.end" : 17, "key.parsed_scope.start" : 17, "key.reusingastcontext" : false, - "key.typename" : "CollectionViewLayoutDelegate", + "key.typename" : "any CollectionViewLayoutDelegate", "key.typeusr" : "$s10ListableUI28CollectionViewLayoutDelegate_pD", "key.usr" : "s:10ListableUI20CollectionViewLayoutC8delegateAA0cdE8Delegate_pvp" }, @@ -53481,7 +53538,7 @@ "key.substructure" : [ ], - "key.typename" : "(CollectionViewLayout.Type) -> (CollectionViewLayoutDelegate, LayoutDescription, Appearance, Behavior) -> CollectionViewLayout", + "key.typename" : "(CollectionViewLayout.Type) -> (any CollectionViewLayoutDelegate, LayoutDescription, Appearance, Behavior) -> CollectionViewLayout", "key.typeusr" : "$s8delegate17layoutDescription10appearance8behavior10ListableUI20CollectionViewLayoutCAE0hiJ8Delegate_p_AE0jC0VAE10AppearanceVAE8BehaviorVtcD", "key.usr" : "s:10ListableUI20CollectionViewLayoutC8delegate17layoutDescription10appearance8behaviorAcA0cdE8Delegate_p_AA0eH0VAA10AppearanceVAA8BehaviorVtcfc" }, @@ -53607,7 +53664,7 @@ "key.parsed_scope.start" : 114, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "AnyListLayout", + "key.typename" : "any AnyListLayout", "key.typeusr" : "$s10ListableUI13AnyListLayout_pD", "key.usr" : "s:10ListableUI20CollectionViewLayoutC6layoutAA07AnyListE0_pvp" }, @@ -53638,7 +53695,7 @@ "key.parsed_scope.start" : 116, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "AnyListLayout", + "key.typename" : "any AnyListLayout", "key.typeusr" : "$s10ListableUI13AnyListLayout_pD", "key.usr" : "s:10ListableUI20CollectionViewLayoutC08previousE033_EB34EA08C49AB6823BEA7E315664A1CBLLAA07AnyListE0_pvp" }, @@ -53856,7 +53913,7 @@ "key.parsed_scope.end" : 153, "key.parsed_scope.start" : 151, "key.reusingastcontext" : false, - "key.typename" : "AnyObject.Type", + "key.typename" : "any AnyObject.Type", "key.typeusr" : "$syXlXpD", "key.usr" : "c:@M@ListableUI@objc(cs)CollectionViewLayout(cpy)invalidationContextClass" }, @@ -56485,7 +56542,7 @@ "key.usr" : "s:10ListableUI28CollectionViewLayoutDelegateP04listD32ShouldEndQueueingEditsForReorderyyF" } ], - "key.typename" : "CollectionViewLayoutDelegate.Protocol", + "key.typename" : "CollectionViewLayoutDelegate.Type", "key.typeusr" : "$s10ListableUI28CollectionViewLayoutDelegate_pmD", "key.usr" : "s:10ListableUI28CollectionViewLayoutDelegateP" }, @@ -57009,7 +57066,7 @@ "key.offset" : 0, "key.substructure" : [ { - "key.annotated_decl" : "public struct LayoutDescription : Equatable<\/Declaration>", + "key.annotated_decl" : "public struct LayoutDescription : Equatable<\/Type><\/Declaration>", "key.bodylength" : 298, "key.bodyoffset" : 155, "key.column" : 15, @@ -57042,7 +57099,7 @@ "key.doc.name" : "LayoutDescription", "key.doc.type" : "Class", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LayoutDescription<\/decl.name> : Equatable<\/decl.struct>", + "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LayoutDescription<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", "key.kind" : "source.lang.swift.decl.extension", "key.length" : 328, "key.line" : 42, @@ -61174,7 +61231,7 @@ "key.usr" : "s:10ListableUI14FlowListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF13contentBottomL_14CoreFoundation7CGFloatVvp" } ], - "key.typename" : "(FlowListLayout) -> (CollectionViewLayoutDelegate?, ListLayoutLayoutContext) -> ListLayoutResult", + "key.typename" : "(FlowListLayout) -> ((any CollectionViewLayoutDelegate)?, ListLayoutLayoutContext) -> ListLayoutResult", "key.typeusr" : "$s8delegate2in10ListableUI16ListLayoutResultVAC014CollectionViewF8Delegate_pSg_AC0efF7ContextVtcD", "key.usr" : "s:10ListableUI14FlowListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF" }, @@ -61383,11 +61440,11 @@ "key.reusingastcontext" : false, "key.substructure" : [ { - "key.annotated_decl" : "var items: [ListLayoutContentItem<\/Type>]<\/Declaration>", + "key.annotated_decl" : "var items: [any ListLayoutContentItem<\/Type>]<\/Declaration>", "key.column" : 13, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> items<\/decl.name>: [ListLayoutContentItem<\/ref.protocol>]<\/decl.var.type><\/decl.var.local>", + "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> items<\/decl.name>: [any ListLayoutContentItem<\/ref.protocol>]<\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 17, "key.line" : 1014, @@ -61400,7 +61457,7 @@ "key.parsed_scope.end" : 1014, "key.parsed_scope.start" : 1014, "key.reusingastcontext" : false, - "key.typename" : "[ListLayoutContentItem]", + "key.typename" : "[any ListLayoutContentItem]", "key.typeusr" : "$sSay10ListableUI21ListLayoutContentItem_pGD", "key.usr" : "s:10ListableUI14FlowListLayoutC4rows33_E6A9B13B1C03E1986EDD541DF2ABB82FLL4with8maxWidthSayAC3RowAELLVGSayAA0dE11ContentItem_pG_14CoreFoundation7CGFloatVtF5itemsL0_ALvp" }, @@ -61427,7 +61484,7 @@ "key.usr" : "s:10ListableUI14FlowListLayoutC4rows33_E6A9B13B1C03E1986EDD541DF2ABB82FLL4with8maxWidthSayAC3RowAELLVGSayAA0dE11ContentItem_pG_14CoreFoundation7CGFloatVtFADL_AJvp" } ], - "key.typename" : "(FlowListLayout) -> ([ListLayoutContentItem], CGFloat) -> [FlowListLayout.Row]", + "key.typename" : "(FlowListLayout) -> ([any ListLayoutContentItem], CGFloat) -> [FlowListLayout.Row]", "key.typeusr" : "$s4with8maxWidthSay10ListableUI14FlowListLayoutC3Row33_E6A9B13B1C03E1986EDD541DF2ABB82FLLVGSayAC0gH11ContentItem_pG_14CoreFoundation7CGFloatVtcD", "key.usr" : "s:10ListableUI14FlowListLayoutC4rows33_E6A9B13B1C03E1986EDD541DF2ABB82FLL4with8maxWidthSayAC3RowAELLVGSayAA0dE11ContentItem_pG_14CoreFoundation7CGFloatVtF" }, @@ -61604,7 +61661,7 @@ "key.parsed_scope.end" : 1085, "key.parsed_scope.start" : 1085, "key.reusingastcontext" : false, - "key.typename" : "[ListLayoutContentItem]", + "key.typename" : "[any ListLayoutContentItem]", "key.typeusr" : "$sSay10ListableUI21ListLayoutContentItem_pGD", "key.usr" : "s:10ListableUI14FlowListLayoutC3Row33_E6A9B13B1C03E1986EDD541DF2ABB82FLLV5itemsSayAA0dE11ContentItem_pGvp" } @@ -62264,7 +62321,7 @@ "key.parsed_scope.end" : 44, "key.parsed_scope.start" : 44, "key.reusingastcontext" : false, - "key.typename" : "AnyLayoutDescriptionConfiguration", + "key.typename" : "any AnyLayoutDescriptionConfiguration", "key.typeusr" : "$s10ListableUI33AnyLayoutDescriptionConfiguration_pD", "key.usr" : "s:10ListableUI17LayoutDescriptionV13configurationAA03AnycD13Configuration_pvp" }, @@ -62645,7 +62702,7 @@ "key.usr" : "s:10ListableUI10ListLayoutPAAE8describe10appearanceAA0D11DescriptionVy0D10AppearanceQzzXE_tFZ" } ], - "key.typename" : "ListLayout.Protocol", + "key.typename" : "ListLayout.Type", "key.typeusr" : "$s10ListableUI10ListLayout_pmD", "key.usr" : "s:10ListableUI10ListLayoutP" }, @@ -62952,7 +63009,7 @@ "key.substructure" : [ ], - "key.typename" : " (LayoutDescription.Configuration) -> (Appearance, Behavior) -> AnyListLayout", + "key.typename" : " (LayoutDescription.Configuration) -> (Appearance, Behavior) -> any AnyListLayout", "key.typeusr" : "$s10appearance8behavior10ListableUI13AnyListLayout_pAC10AppearanceV_AC8BehaviorVtcD", "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV011createEmptyC010appearance8behaviorAA07AnyListC0_pAA10AppearanceV_AA8BehaviorVtF" }, @@ -62992,7 +63049,7 @@ "key.substructure" : [ ], - "key.typename" : " (LayoutDescription.Configuration) -> (Appearance, Behavior, (ListLayoutDefaults) -> ListLayoutContent) -> AnyListLayout", + "key.typename" : " (LayoutDescription.Configuration) -> (Appearance, Behavior, (ListLayoutDefaults) -> ListLayoutContent) -> any AnyListLayout", "key.typeusr" : "$s10appearance8behavior7content10ListableUI13AnyListLayout_pAD10AppearanceV_AD8BehaviorVAD0gH7ContentCAD0gH8DefaultsVXEtcD", "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV015createPopulatedC010appearance8behavior7contentAA07AnyListC0_pAA10AppearanceV_AA8BehaviorVAA0lC7ContentCAA0lC8DefaultsVXEtF" }, @@ -63115,7 +63172,7 @@ "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV13shouldRebuild6layoutSbAA07AnyListC0_p_tF3oldL_0C10AppearanceQzvp" } ], - "key.typename" : " (LayoutDescription.Configuration) -> (AnyListLayout) -> Bool", + "key.typename" : " (LayoutDescription.Configuration) -> (any AnyListLayout) -> Bool", "key.typeusr" : "$s6layoutSb10ListableUI13AnyListLayout_p_tcD", "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV13shouldRebuild6layoutSbAA07AnyListC0_p_tF" }, @@ -63160,7 +63217,7 @@ "key.offset" : 4820 } ], - "key.typename" : " (LayoutDescription.Configuration) -> (AnyLayoutDescriptionConfiguration) -> Bool", + "key.typename" : " (LayoutDescription.Configuration) -> (any AnyLayoutDescriptionConfiguration) -> Bool", "key.typeusr" : "$s2asSb10ListableUI33AnyLayoutDescriptionConfiguration_p_tcD", "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV06isSameC4Type2asSbAA03AnycdE0_p_tF" }, @@ -63200,7 +63257,7 @@ "key.substructure" : [ ], - "key.typename" : " (LayoutDescription.Configuration) -> (AnyLayoutDescriptionConfiguration) -> Bool", + "key.typename" : " (LayoutDescription.Configuration) -> (any AnyLayoutDescriptionConfiguration) -> Bool", "key.typeusr" : "$s2toSb10ListableUI33AnyLayoutDescriptionConfiguration_p_tcD", "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV7isEqual2toSbAA03AnycdE0_p_tF" } @@ -63265,7 +63322,7 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (Appearance, Behavior) -> AnyListLayout", + "key.typename" : " (Self) -> (Appearance, Behavior) -> any AnyListLayout", "key.typeusr" : "$s10appearance8behavior10ListableUI13AnyListLayout_pAC10AppearanceV_AC8BehaviorVtcD", "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP011createEmptyD010appearance8behaviorAA0c4ListD0_pAA10AppearanceV_AA8BehaviorVtF" }, @@ -63291,7 +63348,7 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (Appearance, Behavior, (ListLayoutDefaults) -> ListLayoutContent) -> AnyListLayout", + "key.typename" : " (Self) -> (Appearance, Behavior, (ListLayoutDefaults) -> ListLayoutContent) -> any AnyListLayout", "key.typeusr" : "$s10appearance8behavior7content10ListableUI13AnyListLayout_pAD10AppearanceV_AD8BehaviorVAD0gH7ContentCAD0gH8DefaultsVXEtcD", "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP015createPopulatedD010appearance8behavior7contentAA0c4ListD0_pAA10AppearanceV_AA8BehaviorVAA0lD7ContentCAA0lD8DefaultsVXEtF" }, @@ -63340,7 +63397,7 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (AnyListLayout) -> Bool", + "key.typename" : " (Self) -> (any AnyListLayout) -> Bool", "key.typeusr" : "$s6layoutSb10ListableUI13AnyListLayout_p_tcD", "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP13shouldRebuild6layoutSbAA0c4ListD0_p_tF" }, @@ -63366,7 +63423,7 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (AnyLayoutDescriptionConfiguration) -> Bool", + "key.typename" : " (Self) -> (any AnyLayoutDescriptionConfiguration) -> Bool", "key.typeusr" : "$s2asSb10ListableUI33AnyLayoutDescriptionConfiguration_p_tcD", "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP06isSameD4Type2asSbAaB_p_tF" }, @@ -63392,12 +63449,12 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (AnyLayoutDescriptionConfiguration) -> Bool", + "key.typename" : " (Self) -> (any AnyLayoutDescriptionConfiguration) -> Bool", "key.typeusr" : "$s2toSb10ListableUI33AnyLayoutDescriptionConfiguration_p_tcD", "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP7isEqual2toSbAaB_p_tF" } ], - "key.typename" : "AnyLayoutDescriptionConfiguration.Protocol", + "key.typename" : "AnyLayoutDescriptionConfiguration.Type", "key.typeusr" : "$s10ListableUI33AnyLayoutDescriptionConfiguration_pmD", "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP" }, @@ -64272,26 +64329,26 @@ "key.usr" : "s:10ListableUI14ListPropertiesV10makeLayout2in14safeAreaInsets9itemLimitAA03AnycF0_p_AA0cfF7ContextVtSo6CGSizeV_So06UIEdgeJ0VSiSgtF17presentationStateL_AA012PresentationR0Cvp" }, { - "key.annotated_decl" : "let layout: AnyListLayout<\/Type><\/Declaration>", + "key.annotated_decl" : "let layout: any AnyListLayout<\/Type><\/Declaration>", "key.column" : 13, "key.decl_lang" : "source.lang.swift", "key.doc.column" : 13, "key.doc.comment" : "2) Create the layout used to measure the content.", - "key.doc.declaration" : "let layout: ListableUI.AnyListLayout", + "key.doc.declaration" : "let layout: any ListableUI.AnyListLayout", "key.doc.discussion" : [ { "List-Number" : "" } ], "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout+Layout.swift", - "key.doc.full_as_xml" : "layout<\/Name>s:10ListableUI14ListPropertiesV10makeLayout2in14safeAreaInsets9itemLimitAA03AnycF0_p_AA0cfF7ContextVtSo6CGSizeV_So06UIEdgeJ0VSiSgtF6layoutL_AaH_pvp<\/USR>let layout: ListableUI.AnyListLayout<\/Declaration>Create the layout used to measure the content.<\/Para><\/Item><\/List-Number><\/Discussion><\/CommentParts><\/Other>", + "key.doc.full_as_xml" : "layout<\/Name>s:10ListableUI14ListPropertiesV10makeLayout2in14safeAreaInsets9itemLimitAA03AnycF0_p_AA0cfF7ContextVtSo6CGSizeV_So06UIEdgeJ0VSiSgtF6layoutL_AaH_pvp<\/USR>let layout: any ListableUI.AnyListLayout<\/Declaration>Create the layout used to measure the content.<\/Para><\/Item><\/List-Number><\/Discussion><\/CommentParts><\/Other>", "key.doc.line" : 46, "key.doc.name" : "layout", "key.doc.type" : "Other", "key.doclength" : 54, "key.docoffset" : 1491, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout+Layout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> layout<\/decl.name>: AnyListLayout<\/ref.protocol><\/decl.var.type><\/decl.var.local>", + "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> layout<\/decl.name>: any AnyListLayout<\/ref.protocol><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 389, "key.line" : 46, @@ -64304,7 +64361,7 @@ "key.parsed_scope.end" : 46, "key.parsed_scope.start" : 46, "key.reusingastcontext" : false, - "key.typename" : "AnyListLayout", + "key.typename" : "any AnyListLayout", "key.typeusr" : "$s10ListableUI13AnyListLayout_pD", "key.usr" : "s:10ListableUI14ListPropertiesV10makeLayout2in14safeAreaInsets9itemLimitAA03AnycF0_p_AA0cfF7ContextVtSo6CGSizeV_So06UIEdgeJ0VSiSgtF6layoutL_AaH_pvp" }, @@ -64341,7 +64398,7 @@ "key.usr" : "s:10ListableUI14ListPropertiesV10makeLayout2in14safeAreaInsets9itemLimitAA03AnycF0_p_AA0cfF7ContextVtSo6CGSizeV_So06UIEdgeJ0VSiSgtF06layoutN0L_AJvp" } ], - "key.typename" : "(ListProperties) -> (CGSize, UIEdgeInsets, Int?) -> (AnyListLayout, ListLayoutLayoutContext)", + "key.typename" : "(ListProperties) -> (CGSize, UIEdgeInsets, Int?) -> (any AnyListLayout, ListLayoutLayoutContext)", "key.typeusr" : "$s2in14safeAreaInsets9itemLimit10ListableUI13AnyListLayout_p_AD0jkK7ContextVtSo6CGSizeV_So06UIEdgeD0VSiSgtcD", "key.usr" : "s:10ListableUI14ListPropertiesV10makeLayout2in14safeAreaInsets9itemLimitAA03AnycF0_p_AA0cfF7ContextVtSo6CGSizeV_So06UIEdgeJ0VSiSgtF" } @@ -64356,7 +64413,7 @@ "key.bodyoffset" : 2818, "key.column" : 64, "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.2.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIGeometry.h", + "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.5.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIGeometry.h", "key.fully_annotated_decl" : "@_nonSendable(_assumed)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> UIEdgeInsets<\/decl.name> : @unchecked Sendable<\/ref.protocol><\/decl.struct>", "key.is_system" : true, "key.kind" : "source.lang.swift.decl.extension", @@ -64632,7 +64689,7 @@ "key.usr" : "s:10ListableUI10ListLayoutP16layoutAppearance10appearance8behavior7contentx0dF0Qz_AA0F0VAA8BehaviorVAA0cD7ContentCtcfc" } ], - "key.typename" : "ListLayout.Protocol", + "key.typename" : "ListLayout.Type", "key.typeusr" : "$s10ListableUI10ListLayout_pmD", "key.usr" : "s:10ListableUI10ListLayoutP" }, @@ -65260,7 +65317,7 @@ "key.usr" : "s:10ListableUI10ListLayoutPAAE14resolvedBounds2inAA0c7ContentF0VAA0cdD7ContextV_tF" } ], - "key.typename" : "ListLayout.Protocol", + "key.typename" : "ListLayout.Type", "key.typeusr" : "$s10ListableUI10ListLayout_pmD", "key.usr" : "s:10ListableUI10ListLayoutP" }, @@ -65590,7 +65647,7 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (CollectionViewLayoutDelegate?, ListLayoutLayoutContext) -> ListLayoutResult", + "key.typename" : " (Self) -> ((any CollectionViewLayoutDelegate)?, ListLayoutLayoutContext) -> ListLayoutResult", "key.typeusr" : "$s8delegate2in10ListableUI16ListLayoutResultVAC014CollectionViewF8Delegate_pSg_AC0efF7ContextVtcD", "key.usr" : "s:10ListableUI13AnyListLayoutP6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF" }, @@ -65764,7 +65821,7 @@ "key.usr" : "s:10ListableUI13AnyListLayoutP6adjust33layoutAttributesForReorderingItem08originalH02at18withTargetPositionyAA0d7ContenteH0Vz_AJ10Foundation9IndexPathVSo7CGPointVtF" } ], - "key.typename" : "AnyListLayout.Protocol", + "key.typename" : "AnyListLayout.Type", "key.typeusr" : "$s10ListableUI13AnyListLayout_pmD", "key.usr" : "s:10ListableUI13AnyListLayoutP" }, @@ -65833,12 +65890,12 @@ "key.usr" : "s:10ListableUI13AnyListLayoutPAAE07performE04with2inyAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF6resultL_AA0dE6ResultVvp" } ], - "key.typename" : " (Self) -> (CollectionViewLayoutDelegate?, ListLayoutLayoutContext) -> ()", + "key.typename" : " (Self) -> ((any CollectionViewLayoutDelegate)?, ListLayoutLayoutContext) -> ()", "key.typeusr" : "$s4with2iny10ListableUI28CollectionViewLayoutDelegate_pSg_AC04ListgG7ContextVtcD", "key.usr" : "s:10ListableUI13AnyListLayoutPAAE07performE04with2inyAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF" } ], - "key.typename" : "AnyListLayout.Protocol", + "key.typename" : "AnyListLayout.Type", "key.typeusr" : "$s10ListableUI13AnyListLayout_pmD", "key.usr" : "s:10ListableUI13AnyListLayoutP" }, @@ -66329,7 +66386,7 @@ "key.usr" : "s:10ListableUI10ListLayoutPAAE14isHeaderSticky33_C6789DCBE3319916D53DA06A2430438DLL4list7section6headerS2b_SbSgAItFZ" } ], - "key.typename" : "ListLayout.Protocol", + "key.typename" : "ListLayout.Type", "key.typeusr" : "$s10ListableUI10ListLayout_pmD", "key.usr" : "s:10ListableUI10ListLayoutP" }, @@ -66633,7 +66690,7 @@ "key.usr" : "s:10ListableUI13AnyListLayoutPAAE018adjustPositionsForE9Underflow2inyAA0deE7ContextV_tF" } ], - "key.typename" : "AnyListLayout.Protocol", + "key.typename" : "AnyListLayout.Type", "key.typeusr" : "$s10ListableUI13AnyListLayout_pmD", "key.usr" : "s:10ListableUI13AnyListLayoutP" }, @@ -66901,7 +66958,7 @@ "key.usr" : "s:10ListableUI13AnyListLayoutPAAE026rectForFindingItemToScrollJ16OnDidEndDragging5after8velocitySo6CGRectVSo7CGPointV_AJtF" } ], - "key.typename" : "AnyListLayout.Protocol", + "key.typename" : "AnyListLayout.Type", "key.typeusr" : "$s10ListableUI13AnyListLayout_pmD", "key.usr" : "s:10ListableUI13AnyListLayoutP" }, @@ -67317,7 +67374,7 @@ "key.usr" : "s:10ListableUI20ListLayoutAppearanceP02toD11DescriptionAA0dG0VyF" } ], - "key.typename" : "ListLayoutAppearance.Protocol", + "key.typename" : "ListLayoutAppearance.Type", "key.typeusr" : "$s10ListableUI20ListLayoutAppearance_pmD", "key.usr" : "s:10ListableUI20ListLayoutAppearanceP" }, @@ -67407,7 +67464,7 @@ "key.usr" : "s:10ListableUI20ListLayoutAppearancePAAE7defaultyxyxzXEFZ" } ], - "key.typename" : "ListLayoutAppearance.Protocol", + "key.typename" : "ListLayoutAppearance.Type", "key.typeusr" : "$s10ListableUI20ListLayoutAppearance_pmD", "key.usr" : "s:10ListableUI20ListLayoutAppearanceP" }, @@ -68616,7 +68673,7 @@ "key.parsed_scope.end" : 42, "key.parsed_scope.start" : 28, "key.reusingastcontext" : false, - "key.typename" : "[ListLayoutContentItem]", + "key.typename" : "[any ListLayoutContentItem]", "key.typeusr" : "$sSay10ListableUI21ListLayoutContentItem_pGD", "key.usr" : "s:10ListableUI17ListLayoutContentC3allSayAA0cdE4Item_pGvp" }, @@ -68643,7 +68700,7 @@ } ], "key.reusingastcontext" : false, - "key.typename" : "[ListLayoutContentItem]", + "key.typename" : "[any ListLayoutContentItem]", "key.typeusr" : "$sSay10ListableUI21ListLayoutContentItem_pGD", "key.usr" : "s:10ListableUI17ListLayoutContentC3allSayAA0cdE4Item_pGvgADL_AFvp" }, @@ -68678,7 +68735,7 @@ "key.substructure" : [ ], - "key.typename" : "(ListLayoutContent) -> (KeyPath) -> CGFloat", + "key.typename" : "(ListLayoutContent) -> (KeyPath) -> CGFloat", "key.typeusr" : "$s3for14CoreFoundation7CGFloatVs7KeyPathCy10ListableUI21ListLayoutContentItem_pADG_tcD", "key.usr" : "s:10ListableUI17ListLayoutContentC8maxValue3for14CoreFoundation7CGFloatVs7KeyPathCyAA0cdE4Item_pAHG_tF" }, @@ -69467,7 +69524,7 @@ "key.usr" : "s:10ListableUI21ListLayoutContentItemP6zIndexSivp" } ], - "key.typename" : "ListLayoutContentItem.Protocol", + "key.typename" : "ListLayoutContentItem.Type", "key.typeusr" : "$s10ListableUI21ListLayoutContentItem_pmD", "key.usr" : "s:10ListableUI21ListLayoutContentItemP" }, @@ -69730,7 +69787,7 @@ "key.parsed_scope.end" : 369, "key.parsed_scope.start" : 355, "key.reusingastcontext" : false, - "key.typename" : "[ListLayoutContentItem]", + "key.typename" : "[any ListLayoutContentItem]", "key.typeusr" : "$sSay10ListableUI21ListLayoutContentItem_pGD", "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC3allSayAA0cdE4Item_pGvp" }, @@ -69757,7 +69814,7 @@ } ], "key.reusingastcontext" : false, - "key.typename" : "[ListLayoutContentItem]", + "key.typename" : "[any ListLayoutContentItem]", "key.typeusr" : "$sSay10ListableUI21ListLayoutContentItem_pGD", "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC3allSayAA0cdE4Item_pGvgAFL_AHvp" }, @@ -69967,7 +70024,7 @@ "key.parsed_scope.end" : 418, "key.parsed_scope.start" : 418, "key.reusingastcontext" : false, - "key.typename" : "AnyPresentationHeaderFooterState?", + "key.typename" : "(any AnyPresentationHeaderFooterState)?", "key.typeusr" : "$s10ListableUI32AnyPresentationHeaderFooterState_pSgD", "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC5stateAA32AnyPresentationHeaderFooterState_pSgvp" }, @@ -70434,7 +70491,7 @@ "key.substructure" : [ ], - "key.typename" : "(ListLayoutContent.SupplementaryItemInfo.Type) -> (AnyPresentationHeaderFooterState?, SupplementaryKind, Bool, @escaping (Sizing.MeasureInfo) -> CGSize) -> ListLayoutContent.SupplementaryItemInfo", + "key.typename" : "(ListLayoutContent.SupplementaryItemInfo.Type) -> ((any AnyPresentationHeaderFooterState)?, SupplementaryKind, Bool, @escaping (Sizing.MeasureInfo) -> CGSize) -> ListLayoutContent.SupplementaryItemInfo", "key.typeusr" : "$s5state4kind11isPopulated8measurer10ListableUI17ListLayoutContentC21SupplementaryItemInfoCAE32AnyPresentationHeaderFooterState_pSg_AE0K4KindOSbSo6CGSizeVAE6SizingO07MeasureM0VctcD", "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC5state4kind11isPopulated8measurerAeA32AnyPresentationHeaderFooterState_pSg_AA0F4KindOSbSo6CGSizeVAA6SizingO07MeasureH0Vctcfc" }, @@ -70557,7 +70614,7 @@ "key.parsed_scope.end" : 488, "key.parsed_scope.start" : 488, "key.reusingastcontext" : false, - "key.typename" : "AnyPresentationItemState", + "key.typename" : "any AnyPresentationItemState", "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC5stateAA015AnyPresentationF5State_pvp" }, @@ -70937,7 +70994,7 @@ "key.substructure" : [ ], - "key.typename" : "(ListLayoutContent.ItemInfo.Type) -> (AnyPresentationItemState, IndexPath, ItemInsertAndRemoveAnimations, @escaping (Sizing.MeasureInfo) -> CGSize) -> ListLayoutContent.ItemInfo", + "key.typename" : "(ListLayoutContent.ItemInfo.Type) -> (any AnyPresentationItemState, IndexPath, ItemInsertAndRemoveAnimations, @escaping (Sizing.MeasureInfo) -> CGSize) -> ListLayoutContent.ItemInfo", "key.typeusr" : "$s5state9indexPath25insertAndRemoveAnimations8measurer10ListableUI17ListLayoutContentC8ItemInfoCAE015AnyPresentationN5State_p_10Foundation05IndexC0VAE0n6InsertefG0VSo6CGSizeVAE6SizingO07MeasureO0VctcD", "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC5state9indexPath25insertAndRemoveAnimations8measurerAeA015AnyPresentationF5State_p_10Foundation05IndexJ0VAA0f6InsertlmN0VSo6CGSizeVAA6SizingO07MeasureG0Vctcfc" }, @@ -71192,7 +71249,7 @@ "key.bodyoffset" : 18377, "key.column" : 8, "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.2.sdk\/System\/Library\/Frameworks\/CoreFoundation.framework\/Headers\/CFCGTypes.h", + "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.5.sdk\/System\/Library\/Frameworks\/CoreFoundation.framework\/Headers\/CFCGTypes.h", "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> CGRect<\/decl.name><\/decl.struct>", "key.is_system" : true, "key.kind" : "source.lang.swift.decl.extension", @@ -71582,7 +71639,7 @@ }, { "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift" : { "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 4089, + "key.length" : 4222, "key.offset" : 0, "key.substructure" : [ { @@ -71595,7 +71652,7 @@ "key.offset" : 122 } ], - "key.bodylength" : 3118, + "key.bodylength" : 3251, "key.bodyoffset" : 180, "key.column" : 15, "key.decl_lang" : "source.lang.swift", @@ -71614,7 +71671,7 @@ } ], "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 3170, + "key.length" : 3303, "key.line" : 11, "key.modulename" : "ListableUI", "key.name" : "ListLayoutScrollViewProperties", @@ -71622,7 +71679,7 @@ "key.nameoffset" : 136, "key.offset" : 129, "key.parsed_declaration" : "public struct ListLayoutScrollViewProperties : Equatable", - "key.parsed_scope.end" : 83, + "key.parsed_scope.end" : 87, "key.parsed_scope.start" : 11, "key.reusingastcontext" : false, "key.substructure" : [ @@ -71850,14 +71907,14 @@ { "key.accessibility" : "source.lang.swift.accessibility.internal", "key.annotated_decl" : "func apply(to view: UIScrollView<\/Type>, behavior: Behavior<\/Type>, direction: LayoutDirection<\/Type>, showsScrollIndicators: Bool<\/Type>)<\/Declaration>", - "key.bodylength" : 1908, + "key.bodylength" : 2041, "key.bodyoffset" : 1388, "key.column" : 10, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> apply<\/decl.name>(to<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: UIScrollView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, direction<\/decl.var.parameter.argument_label>: LayoutDirection<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, showsScrollIndicators<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 2063, + "key.length" : 2196, "key.line" : 41, "key.modulename" : "ListableUI", "key.name" : "apply(to:behavior:direction:showsScrollIndicators:)", @@ -71865,7 +71922,7 @@ "key.nameoffset" : 1239, "key.offset" : 1234, "key.parsed_declaration" : "func apply(\n to view : UIScrollView,\n behavior : Behavior,\n direction : LayoutDirection,\n showsScrollIndicators : Bool\n)", - "key.parsed_scope.end" : 82, + "key.parsed_scope.end" : 86, "key.parsed_scope.start" : 41, "key.reusingastcontext" : false, "key.substructure" : [ @@ -71873,29 +71930,20 @@ "key.annotated_decl" : "let isPagingEnabled: Bool<\/Type><\/Declaration>", "key.column" : 13, "key.decl_lang" : "source.lang.swift", - "key.doc.column" : 13, "key.doc.comment" : "**Note**: Properties are only set if they are different (hence all the `if` statements below)\nbecause some UIScrollView properties, even when set to the same value, can affect or stop scrolling if it\nis in progress. Hard to tell which across iOS versions, so just always be defensive.", - "key.doc.declaration" : "let isPagingEnabled: Bool", - "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.doc.full_as_xml" : "isPagingEnabled<\/Name>s:10ListableUI30ListLayoutScrollViewPropertiesV5apply2to8behavior9direction05showsE10IndicatorsySo08UIScrollF0C_AA8BehaviorVAA0D9DirectionOSbtF15isPagingEnabledL_Sbvp<\/USR>let isPagingEnabled: Bool<\/Declaration>Note<\/bold>: Properties are only set if they are different (hence all the if<\/codeVoice> statements below) because some UIScrollView properties, even when set to the same value, can affect or stop scrolling if it is in progress. Hard to tell which across iOS versions, so just always be defensive.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 51, - "key.doc.name" : "isPagingEnabled", - "key.doc.type" : "Other", - "key.doclength" : 313, - "key.docoffset" : 1397, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> isPagingEnabled<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 70, - "key.line" : 51, + "key.line" : 55, "key.modulename" : "ListableUI", "key.name" : "isPagingEnabled", "key.namelength" : 15, - "key.nameoffset" : 1731, - "key.offset" : 1727, + "key.nameoffset" : 1864, + "key.offset" : 1860, "key.parsed_declaration" : "let isPagingEnabled = self.isPagingEnabled || behavior.isPagingEnabled", - "key.parsed_scope.end" : 51, - "key.parsed_scope.start" : 51, + "key.parsed_scope.end" : 55, + "key.parsed_scope.start" : 55, "key.reusingastcontext" : false, "key.typename" : "Bool", "key.typeusr" : "$sSbD", @@ -71909,15 +71957,15 @@ "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> alwaysBounceVertical<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 113, - "key.line" : 61, + "key.line" : 65, "key.modulename" : "ListableUI", "key.name" : "alwaysBounceVertical", "key.namelength" : 20, - "key.nameoffset" : 2183, - "key.offset" : 2179, + "key.nameoffset" : 2316, + "key.offset" : 2312, "key.parsed_declaration" : "let alwaysBounceVertical = self.allowsBounceVertical && behavior.underflow.alwaysBounce && direction == .vertical", - "key.parsed_scope.end" : 61, - "key.parsed_scope.start" : 61, + "key.parsed_scope.end" : 65, + "key.parsed_scope.start" : 65, "key.reusingastcontext" : false, "key.typename" : "Bool", "key.typeusr" : "$sSbD", @@ -71931,15 +71979,15 @@ "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> alwaysBounceHorizontal<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 119, - "key.line" : 62, + "key.line" : 66, "key.modulename" : "ListableUI", "key.name" : "alwaysBounceHorizontal", "key.namelength" : 22, - "key.nameoffset" : 2305, - "key.offset" : 2301, + "key.nameoffset" : 2438, + "key.offset" : 2434, "key.parsed_declaration" : "let alwaysBounceHorizontal = self.allowsBounceHorizontal && behavior.underflow.alwaysBounce && direction == .horizontal", - "key.parsed_scope.end" : 62, - "key.parsed_scope.start" : 62, + "key.parsed_scope.end" : 66, + "key.parsed_scope.start" : 66, "key.reusingastcontext" : false, "key.typename" : "Bool", "key.typeusr" : "$sSbD", @@ -71953,15 +72001,15 @@ "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> showsVerticalScrollIndicator<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 94, - "key.line" : 72, + "key.line" : 76, "key.modulename" : "ListableUI", "key.name" : "showsVerticalScrollIndicator", "key.namelength" : 28, - "key.nameoffset" : 2736, - "key.offset" : 2732, + "key.nameoffset" : 2869, + "key.offset" : 2865, "key.parsed_declaration" : "let showsVerticalScrollIndicator = self.allowsVerticalScrollIndicator && showsScrollIndicators", - "key.parsed_scope.end" : 72, - "key.parsed_scope.start" : 72, + "key.parsed_scope.end" : 76, + "key.parsed_scope.start" : 76, "key.reusingastcontext" : false, "key.typename" : "Bool", "key.typeusr" : "$sSbD", @@ -71975,15 +72023,15 @@ "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> showsHorizontalScrollIndicator<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 98, - "key.line" : 73, + "key.line" : 77, "key.modulename" : "ListableUI", "key.name" : "showsHorizontalScrollIndicator", "key.namelength" : 30, - "key.nameoffset" : 2839, - "key.offset" : 2835, + "key.nameoffset" : 2972, + "key.offset" : 2968, "key.parsed_declaration" : "let showsHorizontalScrollIndicator = self.allowsHorizontalScrollIndicator && showsScrollIndicators", - "key.parsed_scope.end" : 73, - "key.parsed_scope.start" : 73, + "key.parsed_scope.end" : 77, + "key.parsed_scope.start" : 77, "key.reusingastcontext" : false, "key.typename" : "Bool", "key.typeusr" : "$sSbD", @@ -72006,28 +72054,28 @@ { "key.attribute" : "source.decl.attribute.public", "key.length" : 6, - "key.offset" : 3448 + "key.offset" : 3581 } ], "key.bodylength" : 583, - "key.bodyoffset" : 3504, + "key.bodyoffset" : 3637, "key.column" : 13, "key.decl_lang" : "source.lang.swift", "key.doc.column" : 13, "key.doc.comment" : "Constants indicating how safe area insets are added to the adjusted content inset.\nMirrors `UIScrollView.ContentInsetAdjustmentBehavior`.", "key.doc.declaration" : "public enum ContentInsetAdjustmentBehavior : Equatable", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.doc.full_as_xml" : "ContentInsetAdjustmentBehavior<\/Name>s:10ListableUI30ContentInsetAdjustmentBehaviorO<\/USR>public enum ContentInsetAdjustmentBehavior : Equatable<\/Declaration>Constants indicating how safe area insets are added to the adjusted content inset. Mirrors UIScrollView.ContentInsetAdjustmentBehavior<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 88, + "key.doc.full_as_xml" : "ContentInsetAdjustmentBehavior<\/Name>s:10ListableUI30ContentInsetAdjustmentBehaviorO<\/USR>public enum ContentInsetAdjustmentBehavior : Equatable<\/Declaration>Constants indicating how safe area insets are added to the adjusted content inset. Mirrors UIScrollView.ContentInsetAdjustmentBehavior<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 92, "key.doc.name" : "ContentInsetAdjustmentBehavior", "key.doc.type" : "Other", "key.doclength" : 146, - "key.docoffset" : 3302, + "key.docoffset" : 3435, "key.elements" : [ { "key.kind" : "source.lang.swift.structure.elem.typeref", "key.length" : 9, - "key.offset" : 3493 + "key.offset" : 3626 } ], "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", @@ -72039,21 +72087,21 @@ ], "key.kind" : "source.lang.swift.decl.enum", "key.length" : 633, - "key.line" : 88, + "key.line" : 92, "key.modulename" : "ListableUI", "key.name" : "ContentInsetAdjustmentBehavior", "key.namelength" : 30, - "key.nameoffset" : 3460, - "key.offset" : 3455, + "key.nameoffset" : 3593, + "key.offset" : 3588, "key.parsed_declaration" : "public enum ContentInsetAdjustmentBehavior : Equatable", - "key.parsed_scope.end" : 110, - "key.parsed_scope.start" : 88, + "key.parsed_scope.end" : 114, + "key.parsed_scope.start" : 92, "key.reusingastcontext" : false, "key.substructure" : [ { "key.kind" : "source.lang.swift.decl.enumcase", "key.length" : 14, - "key.offset" : 3580, + "key.offset" : 3713, "key.substructure" : [ { "key.accessibility" : "source.lang.swift.accessibility.public", @@ -72064,25 +72112,25 @@ "key.doc.comment" : "Applies the inset from a UIKit navigation bar or tab bar.", "key.doc.declaration" : "", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.doc.full_as_xml" : "automatic<\/Name>s:10ListableUI30ContentInsetAdjustmentBehaviorO9automaticyA2CmF<\/USR><\/Declaration>Applies the inset from a UIKit navigation bar or tab bar.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 91, + "key.doc.full_as_xml" : "automatic<\/Name>s:10ListableUI30ContentInsetAdjustmentBehaviorO9automaticyA2CmF<\/USR><\/Declaration>Applies the inset from a UIKit navigation bar or tab bar.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 95, "key.doc.name" : "automatic", "key.doc.type" : "Other", "key.doclength" : 62, - "key.docoffset" : 3514, + "key.docoffset" : 3647, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> automatic<\/decl.name><\/decl.enumelement>", "key.kind" : "source.lang.swift.decl.enumelement", "key.length" : 9, - "key.line" : 91, + "key.line" : 95, "key.modulename" : "ListableUI", "key.name" : "automatic", "key.namelength" : 9, - "key.nameoffset" : 3585, - "key.offset" : 3585, + "key.nameoffset" : 3718, + "key.offset" : 3718, "key.parsed_declaration" : "case automatic", - "key.parsed_scope.end" : 91, - "key.parsed_scope.start" : 91, + "key.parsed_scope.end" : 95, + "key.parsed_scope.start" : 95, "key.reusingastcontext" : false, "key.typename" : "(ContentInsetAdjustmentBehavior.Type) -> ContentInsetAdjustmentBehavior", "key.typeusr" : "$sy10ListableUI30ContentInsetAdjustmentBehaviorOACmcD", @@ -72093,7 +72141,7 @@ { "key.kind" : "source.lang.swift.decl.enumcase", "key.length" : 19, - "key.offset" : 3665, + "key.offset" : 3798, "key.substructure" : [ { "key.accessibility" : "source.lang.swift.accessibility.public", @@ -72104,25 +72152,25 @@ "key.doc.comment" : "Applies the safe area inset for the scrollable axes.", "key.doc.declaration" : "", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.doc.full_as_xml" : "scrollableAxes<\/Name>s:10ListableUI30ContentInsetAdjustmentBehaviorO14scrollableAxesyA2CmF<\/USR><\/Declaration>Applies the safe area inset for the scrollable axes.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 94, + "key.doc.full_as_xml" : "scrollableAxes<\/Name>s:10ListableUI30ContentInsetAdjustmentBehaviorO14scrollableAxesyA2CmF<\/USR><\/Declaration>Applies the safe area inset for the scrollable axes.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 98, "key.doc.name" : "scrollableAxes", "key.doc.type" : "Other", "key.doclength" : 57, - "key.docoffset" : 3604, + "key.docoffset" : 3737, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> scrollableAxes<\/decl.name><\/decl.enumelement>", "key.kind" : "source.lang.swift.decl.enumelement", "key.length" : 14, - "key.line" : 94, + "key.line" : 98, "key.modulename" : "ListableUI", "key.name" : "scrollableAxes", "key.namelength" : 14, - "key.nameoffset" : 3670, - "key.offset" : 3670, + "key.nameoffset" : 3803, + "key.offset" : 3803, "key.parsed_declaration" : "case scrollableAxes", - "key.parsed_scope.end" : 94, - "key.parsed_scope.start" : 94, + "key.parsed_scope.end" : 98, + "key.parsed_scope.start" : 98, "key.reusingastcontext" : false, "key.typename" : "(ContentInsetAdjustmentBehavior.Type) -> ContentInsetAdjustmentBehavior", "key.typeusr" : "$sy10ListableUI30ContentInsetAdjustmentBehaviorOACmcD", @@ -72133,7 +72181,7 @@ { "key.kind" : "source.lang.swift.decl.enumcase", "key.length" : 10, - "key.offset" : 3730, + "key.offset" : 3863, "key.substructure" : [ { "key.accessibility" : "source.lang.swift.accessibility.public", @@ -72144,25 +72192,25 @@ "key.doc.comment" : "Applies no safe area inset.", "key.doc.declaration" : "", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.doc.full_as_xml" : "never<\/Name>s:10ListableUI30ContentInsetAdjustmentBehaviorO5neveryA2CmF<\/USR><\/Declaration>Applies no safe area inset.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 97, + "key.doc.full_as_xml" : "never<\/Name>s:10ListableUI30ContentInsetAdjustmentBehaviorO5neveryA2CmF<\/USR><\/Declaration>Applies no safe area inset.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 101, "key.doc.name" : "never", "key.doc.type" : "Other", "key.doclength" : 32, - "key.docoffset" : 3694, + "key.docoffset" : 3827, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> never<\/decl.name><\/decl.enumelement>", "key.kind" : "source.lang.swift.decl.enumelement", "key.length" : 5, - "key.line" : 97, + "key.line" : 101, "key.modulename" : "ListableUI", "key.name" : "never", "key.namelength" : 5, - "key.nameoffset" : 3735, - "key.offset" : 3735, + "key.nameoffset" : 3868, + "key.offset" : 3868, "key.parsed_declaration" : "case never", - "key.parsed_scope.end" : 97, - "key.parsed_scope.start" : 97, + "key.parsed_scope.end" : 101, + "key.parsed_scope.start" : 101, "key.reusingastcontext" : false, "key.typename" : "(ContentInsetAdjustmentBehavior.Type) -> ContentInsetAdjustmentBehavior", "key.typeusr" : "$sy10ListableUI30ContentInsetAdjustmentBehaviorOACmcD", @@ -72173,7 +72221,7 @@ { "key.kind" : "source.lang.swift.decl.enumcase", "key.length" : 11, - "key.offset" : 3788, + "key.offset" : 3921, "key.substructure" : [ { "key.accessibility" : "source.lang.swift.accessibility.public", @@ -72184,25 +72232,25 @@ "key.doc.comment" : "Applies all safe area insets.", "key.doc.declaration" : "", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.doc.full_as_xml" : "always<\/Name>s:10ListableUI30ContentInsetAdjustmentBehaviorO6alwaysyA2CmF<\/USR><\/Declaration>Applies all safe area insets.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 100, + "key.doc.full_as_xml" : "always<\/Name>s:10ListableUI30ContentInsetAdjustmentBehaviorO6alwaysyA2CmF<\/USR><\/Declaration>Applies all safe area insets.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 104, "key.doc.name" : "always", "key.doc.type" : "Other", "key.doclength" : 34, - "key.docoffset" : 3750, + "key.docoffset" : 3883, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> always<\/decl.name><\/decl.enumelement>", "key.kind" : "source.lang.swift.decl.enumelement", "key.length" : 6, - "key.line" : 100, + "key.line" : 104, "key.modulename" : "ListableUI", "key.name" : "always", "key.namelength" : 6, - "key.nameoffset" : 3793, - "key.offset" : 3793, + "key.nameoffset" : 3926, + "key.offset" : 3926, "key.parsed_declaration" : "case always", - "key.parsed_scope.end" : 100, - "key.parsed_scope.start" : 100, + "key.parsed_scope.end" : 104, + "key.parsed_scope.start" : 104, "key.reusingastcontext" : false, "key.typename" : "(ContentInsetAdjustmentBehavior.Type) -> ContentInsetAdjustmentBehavior", "key.typeusr" : "$sy10ListableUI30ContentInsetAdjustmentBehaviorOACmcD", @@ -72214,22 +72262,22 @@ "key.accessibility" : "source.lang.swift.accessibility.internal", "key.annotated_decl" : "var toUIScrollViewValue: UIScrollView<\/Type>.ContentInsetAdjustmentBehavior<\/Type> { get }<\/Declaration>", "key.bodylength" : 205, - "key.bodyoffset" : 3880, + "key.bodyoffset" : 4013, "key.column" : 9, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> toUIScrollViewValue<\/decl.name>: UIScrollView<\/ref.class>.ContentInsetAdjustmentBehavior<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", "key.kind" : "source.lang.swift.decl.var.instance", "key.length" : 277, - "key.line" : 102, + "key.line" : 106, "key.modulename" : "ListableUI", "key.name" : "toUIScrollViewValue", "key.namelength" : 19, - "key.nameoffset" : 3813, - "key.offset" : 3809, + "key.nameoffset" : 3946, + "key.offset" : 3942, "key.parsed_declaration" : "var toUIScrollViewValue : UIScrollView.ContentInsetAdjustmentBehavior", - "key.parsed_scope.end" : 109, - "key.parsed_scope.start" : 102, + "key.parsed_scope.end" : 113, + "key.parsed_scope.start" : 106, "key.reusingastcontext" : false, "key.typename" : "UIScrollView.ContentInsetAdjustmentBehavior", "key.typeusr" : "$sSo42UIScrollViewContentInsetAdjustmentBehaviorVD", @@ -72434,7 +72482,7 @@ "key.substructure" : [ { "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct LayoutDescription : Equatable<\/Declaration>", + "key.annotated_decl" : "public struct LayoutDescription : Equatable<\/Type><\/Declaration>", "key.attributes" : [ { "key.attribute" : "source.decl.attribute.public", @@ -72474,7 +72522,7 @@ "key.doc.name" : "LayoutDescription", "key.doc.type" : "Class", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LayoutDescription<\/decl.name> : Equatable<\/decl.struct>", + "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LayoutDescription<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", "key.kind" : "source.lang.swift.decl.extension", "key.length" : 185, "key.line" : 42, @@ -73709,7 +73757,7 @@ "key.usr" : "s:10ListableUI15PagedListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF8lastMaxYL_14CoreFoundation7CGFloatVvp" } ], - "key.typename" : "(PagedListLayout) -> (CollectionViewLayoutDelegate?, ListLayoutLayoutContext) -> ListLayoutResult", + "key.typename" : "(PagedListLayout) -> ((any CollectionViewLayoutDelegate)?, ListLayoutLayoutContext) -> ListLayoutResult", "key.typeusr" : "$s8delegate2in10ListableUI16ListLayoutResultVAC014CollectionViewF8Delegate_pSg_AC0efF7ContextVtcD", "key.usr" : "s:10ListableUI15PagedListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF" } @@ -74039,7 +74087,7 @@ "key.offset" : 0, "key.substructure" : [ { - "key.annotated_decl" : "public struct LayoutDescription : Equatable<\/Declaration>", + "key.annotated_decl" : "public struct LayoutDescription : Equatable<\/Type><\/Declaration>", "key.bodylength" : 162, "key.bodyoffset" : 156, "key.column" : 15, @@ -74072,7 +74120,7 @@ "key.doc.name" : "LayoutDescription", "key.doc.type" : "Class", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LayoutDescription<\/decl.name> : Equatable<\/decl.struct>", + "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LayoutDescription<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", "key.kind" : "source.lang.swift.decl.extension", "key.length" : 192, "key.line" : 42, @@ -77397,7 +77445,7 @@ "key.usr" : "s:10ListableUI15TableListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF13contentBottomL_14CoreFoundation7CGFloatVvp" } ], - "key.typename" : "(TableListLayout) -> (CollectionViewLayoutDelegate?, ListLayoutLayoutContext) -> ListLayoutResult", + "key.typename" : "(TableListLayout) -> ((any CollectionViewLayoutDelegate)?, ListLayoutLayoutContext) -> ListLayoutResult", "key.typeusr" : "$s8delegate2in10ListableUI16ListLayoutResultVAC014CollectionViewF8Delegate_pSg_AC0efF7ContextVtcD", "key.usr" : "s:10ListableUI15TableListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF" }, @@ -77610,7 +77658,7 @@ }, { "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "@frozen struct Array<Element> : _DestructorSafeContainer<\/Type><\/Declaration>", + "key.annotated_decl" : "@frozen @_eagerMove struct Array<Element> : _DestructorSafeContainer<\/Type><\/Declaration>", "key.attributes" : [ { "key.attribute" : "source.decl.attribute.fileprivate", @@ -77756,7 +77804,7 @@ "key.doc.full_as_xml" : "Array<\/Name>s:Sa<\/USR>@frozen struct Array<Element> : _DestructorSafeContainer<\/Declaration>An ordered, random-access collection.<\/Para><\/Abstract>Arrays are one of the most commonly used data types in an app. You use arrays to organize your app’s data. Specifically, you use the Array<\/codeVoice> type to hold elements of a single type, the array’s Element<\/codeVoice> type. An array can store any kind of elements—from integers to strings to classes.<\/Para>Swift makes it easy to create arrays in your code using an array literal: simply surround a comma-separated list of values with square brackets. Without any other information, Swift creates an array that includes the specified values, automatically inferring the array’s Element<\/codeVoice> type. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can create an empty array by specifying the Element<\/codeVoice> type of your array in the declaration. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> = Array()]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you need an array that is preinitialized with a fixed number of default values, use the Array(repeating:count:)<\/codeVoice> initializer.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Accessing Array Values]]><\/rawHTML>When you need to perform an operation on all of an array’s elements, use a for<\/codeVoice>-in<\/codeVoice> loop to iterate through the array’s contents.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Use the isEmpty<\/codeVoice> property to check quickly whether an array has any elements, or use the count<\/codeVoice> property to find the number of elements in the array.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Use the first<\/codeVoice> and last<\/codeVoice> properties for safe access to the value of the array’s first and last elements. If the array is empty, these properties are nil<\/codeVoice>.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can access individual array elements through a subscript. The first element of a nonempty array is always at index zero. You can subscript an array with any integer from zero up to, but not including, the count of the array. Using a negative number or an index equal to or greater than count<\/codeVoice> triggers a runtime error. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Adding and Removing Elements]]><\/rawHTML>Suppose you need to store a list of the names of students that are signed up for a class you’re teaching. During the registration period, you need to add and remove names as students add and drop the class.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>To add single elements to the end of an array, use the append(_:)<\/codeVoice> method. Add multiple elements at the same time by passing another array or a sequence of any kind to the append(contentsOf:)<\/codeVoice> method.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can add new elements in the middle of an array by using the insert(_:at:)<\/codeVoice> method for single elements and by using insert(contentsOf:at:)<\/codeVoice> to insert multiple elements from another collection or array literal. The elements at that index and later indices are shifted back to make room.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>To remove elements from an array, use the remove(at:)<\/codeVoice>, removeSubrange(_:)<\/codeVoice>, and removeLast()<\/codeVoice> methods.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can replace an existing element with a new value by assigning the new value to the subscript.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Growing the Size of an Array]]><\/rawHTML>Every array reserves a specific amount of memory to hold its contents. When you add elements to an array and that array begins to exceed its reserved capacity, the array allocates a larger region of memory and copies its elements into the new storage. The new storage is a multiple of the old storage’s size. This exponential growth strategy means that appending an element happens in constant time, averaging the performance of many append operations. Append operations that trigger reallocation have a performance cost, but they occur less and less often as the array grows larger.<\/Para>If you know approximately how many elements you will need to store, use the reserveCapacity(_:)<\/codeVoice> method before appending to the array to avoid intermediate reallocations. Use the capacity<\/codeVoice> and count<\/codeVoice> properties to determine how many more elements the array can store without allocating larger storage.<\/Para>For arrays of most Element<\/codeVoice> types, this storage is a contiguous block of memory. For arrays with an Element<\/codeVoice> type that is a class or @objc<\/codeVoice> protocol type, this storage can be a contiguous block of memory or an instance of NSArray<\/codeVoice>. Because any arbitrary subclass of NSArray<\/codeVoice> can become an Array<\/codeVoice>, there are no guarantees about representation or efficiency in this case.<\/Para>]]><\/rawHTML>Modifying Copies of Arrays]]><\/rawHTML>Each array has an independent value that includes the values of all of its elements. For simple types such as integers and other structures, this means that when you change a value in one array, the value of that element does not change in any copies of the array. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If the elements in an array are instances of a class, the semantics are the same, though they might appear different at first. In this case, the values stored in the array are references to objects that live outside the array. If you change a reference to an object in one array, only that array has a reference to the new object. However, if two arrays contain references to the same object, you can observe changes to that object’s properties from both arrays. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Arrays, like all variable-size collections in the standard library, use copy-on-write optimization. Multiple copies of an array share the same storage until you modify one of the copies. When that happens, the array being modified replaces its storage with a uniquely owned copy of itself, which is then modified in place. Optimizations are sometimes applied that can reduce the amount of copying.<\/Para>This means that if an array is sharing storage with other copies, the first mutating operation on that array incurs the cost of copying the array. An array that is the sole owner of its storage can perform mutating operations in place.<\/Para>In the example below, a numbers<\/codeVoice> array is created along with two copies that share the same storage. When the original numbers<\/codeVoice> array is modified, it makes a unique copy of its storage before making the modification. Further modifications to numbers<\/codeVoice> are made in place, while the two copies continue to share the original storage.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Bridging Between Array and NSArray]]><\/rawHTML>When you need to access APIs that require data in an NSArray<\/codeVoice> instance instead of Array<\/codeVoice>, use the type-cast operator (as<\/codeVoice>) to bridge your instance. For bridging to be possible, the Element<\/codeVoice> type of your array must be a class, an @objc<\/codeVoice> protocol (a protocol imported from Objective-C or marked with the @objc<\/codeVoice> attribute), or a type that bridges to a Foundation type.<\/Para>The following example shows how you can bridge an Array<\/codeVoice> instance to NSArray<\/codeVoice> to use the write(to:atomically:)<\/codeVoice> method. In this example, the colors<\/codeVoice> array can be bridged to NSArray<\/codeVoice> because the colors<\/codeVoice> array’s String<\/codeVoice> elements bridge to NSString<\/codeVoice>. The compiler prevents bridging the moreColors<\/codeVoice> array, on the other hand, because its Element<\/codeVoice> type is Optional<String><\/codeVoice>, which does not<\/emphasis> bridge to a Foundation type.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Bridging from Array<\/codeVoice> to NSArray<\/codeVoice> takes O(1) time and O(1) space if the array’s elements are already instances of a class or an @objc<\/codeVoice> protocol; otherwise, it takes O(n<\/emphasis>) time and space.<\/Para>When the destination array’s element type is a class or an @objc<\/codeVoice> protocol, bridging from NSArray<\/codeVoice> to Array<\/codeVoice> first calls the copy(with:)<\/codeVoice> (- copyWithZone:<\/codeVoice> in Objective-C) method on the array to get an immutable copy and then performs additional Swift bookkeeping work that takes O(1) time. For instances of NSArray<\/codeVoice> that are already immutable, copy(with:)<\/codeVoice> usually returns the same array in O(1) time; otherwise, the copying performance is unspecified. If copy(with:)<\/codeVoice> returns the same array, the instances of NSArray<\/codeVoice> and Array<\/codeVoice> share storage using the same copy-on-write optimization that is used when two instances of Array<\/codeVoice> share storage.<\/Para>When the destination array’s element type is a nonclass type that bridges to a Foundation type, bridging from NSArray<\/codeVoice> to Array<\/codeVoice> performs a bridging copy of the elements to contiguous storage in O(n<\/emphasis>) time. For example, bridging from NSArray<\/codeVoice> to Array<Int><\/codeVoice> performs such a copy. No further bridging is required when accessing elements of the Array<\/codeVoice> instance.<\/Para>The ContiguousArray<\/codeVoice> and ArraySlice<\/codeVoice> types are not bridged; instances of those types always have a contiguous block of memory as their storage.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Class>", "key.doc.name" : "Array", "key.doc.type" : "Class", - "key.fully_annotated_decl" : "@frozen<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> Array<\/decl.name><Element<\/decl.generic_type_param.name><\/decl.generic_type_param>> : _DestructorSafeContainer<\/ref.protocol><\/decl.struct>", + "key.fully_annotated_decl" : "@frozen<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @_eagerMove<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> Array<\/decl.name><Element<\/decl.generic_type_param.name><\/decl.generic_type_param>> : _DestructorSafeContainer<\/ref.protocol><\/decl.struct>", "key.groupname" : "Collection\/Array", "key.is_system" : true, "key.kind" : "source.lang.swift.decl.extension", @@ -79418,7 +79466,7 @@ "key.substructure" : [ ], - "key.typename" : "(ListActions.Scrolling) -> (AnyItem, ScrollPosition, ViewAnimation, @escaping (Bool) -> ()) -> Bool", + "key.typename" : "(ListActions.Scrolling) -> (any AnyItem, ScrollPosition, ViewAnimation, @escaping (Bool) -> ()) -> Bool", "key.typeusr" : "$s4item8position9animation10completionSb10ListableUI7AnyItem_p_AE14ScrollPositionVAE13ViewAnimationOySbctcD", "key.usr" : "s:10ListableUI11ListActionsC9ScrollingC8scrollTo4item8position9animation10completionSbAA7AnyItem_p_AA14ScrollPositionVAA13ViewAnimationOySbctF" }, @@ -79782,7 +79830,7 @@ "key.substructure" : [ ], - "key.typename" : "(ListActions.ViewControllerTransitioning) -> (UIViewControllerTransitionCoordinator?, Bool) -> ()", + "key.typename" : "(ListActions.ViewControllerTransitioning) -> ((any UIViewControllerTransitionCoordinator)?, Bool) -> ()", "key.typeusr" : "$s9alongside8animatedySo37UIViewControllerTransitionCoordinator_pSg_SbtcD", "key.usr" : "s:10ListableUI11ListActionsC27ViewControllerTransitioningC020clearSelectionDuringE10WillAppear9alongside8animatedySo06UIViewF21TransitionCoordinator_pSg_SbtF" } @@ -80657,7 +80705,7 @@ "key.parsed_scope.start" : 140, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((KeyboardCurrentFrameProvider, (animationDuration: Double, animationCurve: UIView.AnimationCurve)) -> ())?", + "key.typename" : "((any KeyboardCurrentFrameProvider, (animationDuration: Double, animationCurve: UIView.AnimationCurve)) -> ())?", "key.typeusr" : "$sy10ListableUI28KeyboardCurrentFrameProvider_p_Sd17animationDuration_So20UIViewAnimationCurveV0gK0ttcSgD", "key.usr" : "s:10ListableUI14ListPropertiesV25onKeyboardFrameWillChangeyAA0f7CurrentG8Provider_p_Sd17animationDuration_So20UIViewAnimationCurveV0lP0ttcSgvp" }, @@ -80871,7 +80919,7 @@ "key.substructure" : [ ], - "key.typename" : "(ListProperties.Type) -> (Bool, ListAnimation, LayoutDescription, Appearance, UIEdgeInsets, Behavior, AutoScrollAction, ((KeyboardCurrentFrameProvider, (animationDuration: Double, animationCurve: UIView.AnimationCurve)) -> ())?, String?, String?, (inout ListProperties) -> ()) -> ListProperties", + "key.typename" : "(ListProperties.Type) -> (Bool, ListAnimation, LayoutDescription, Appearance, UIEdgeInsets, Behavior, AutoScrollAction, ((any KeyboardCurrentFrameProvider, (animationDuration: Double, animationCurve: UIView.AnimationCurve)) -> ())?, String?, String?, (inout ListProperties) -> ()) -> ListProperties", "key.typeusr" : "$s15animatesChanges9animation6layout10appearance21scrollIndicatorInsets8behavior16autoScrollAction25onKeyboardFrameWillChange23accessibilityIdentifier09debuggingS09configure10ListableUI14ListPropertiesVSb_AL0X9AnimationVAL17LayoutDescriptionVAL10AppearanceVSo06UIEdgeH0VAL8BehaviorVAL04AutokL0OyAL0n7CurrentO8Provider_p_Sd0C8Duration_So06UIViewZ5CurveV0C5CurvettcSgSSSgA5_yANzXEtcD", "key.usr" : "s:10ListableUI14ListPropertiesV15animatesChanges9animation6layout10appearance21scrollIndicatorInsets8behavior16autoScrollAction25onKeyboardFrameWillChange23accessibilityIdentifier09debuggingW09configureACSb_AA0C9AnimationVAA17LayoutDescriptionVAA10AppearanceVSo06UIEdgeL0VAA8BehaviorVAA04AutooP0OyAA0r7CurrentS8Provider_p_Sd0G8Duration_So06UIViewZ5CurveV0G5CurvettcSgSSSgA5_yACzXEtcfc" }, @@ -82138,7 +82186,7 @@ "key.bodyoffset" : 5643, "key.column" : 64, "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.2.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIGeometry.h", + "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.5.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIGeometry.h", "key.fully_annotated_decl" : "@_nonSendable(_assumed)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> UIEdgeInsets<\/decl.name> : @unchecked Sendable<\/ref.protocol><\/decl.struct>", "key.is_system" : true, "key.kind" : "source.lang.swift.decl.extension", @@ -82220,7 +82268,7 @@ "key.offset" : 6170 } ], - "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.2.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIGeometry.h", + "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.5.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIGeometry.h", "key.fully_annotated_decl" : "@_nonSendable(_assumed)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> UIRectEdge<\/decl.name> : OptionSet<\/ref.protocol>, @unchecked Sendable<\/ref.protocol><\/decl.struct>", "key.inheritedtypes" : [ { @@ -84273,7 +84321,7 @@ "key.substructure" : [ ], - "key.typename" : "(ListStateObserver.ContentUpdated.InsertionsAndRemovals.Type) -> (SectionedDiff) -> ListStateObserver.ContentUpdated.InsertionsAndRemovals", + "key.typename" : "(ListStateObserver.ContentUpdated.InsertionsAndRemovals.Type) -> (SectionedDiff) -> ListStateObserver.ContentUpdated.InsertionsAndRemovals", "key.typeusr" : "$s4diff10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsVAB13SectionedDiffVyAB7SectionVAB13AnyIdentifierCAB0O4Item_pANG_tcD", "key.usr" : "s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV4diffAgA13SectionedDiffVyAA7SectionVAA13AnyIdentifierCAA0O4Item_pANG_tcfc" }, @@ -84568,7 +84616,7 @@ "key.parsed_scope.end" : 291, "key.parsed_scope.start" : 291, "key.reusingastcontext" : false, - "key.typename" : "[AnyItem]", + "key.typename" : "[any AnyItem]", "key.typeusr" : "$sSay10ListableUI7AnyItem_pGD", "key.usr" : "s:10ListableUI17ListStateObserverV17VisibilityChangedV9displayedSayAA7AnyItem_pGvp" }, @@ -84608,7 +84656,7 @@ "key.parsed_scope.end" : 294, "key.parsed_scope.start" : 294, "key.reusingastcontext" : false, - "key.typename" : "[AnyItem]", + "key.typename" : "[any AnyItem]", "key.typeusr" : "$sSay10ListableUI7AnyItem_pGD", "key.usr" : "s:10ListableUI17ListStateObserverV17VisibilityChangedV12endedDisplaySayAA7AnyItem_pGvp" } @@ -85180,7 +85228,7 @@ "key.parsed_scope.end" : 342, "key.parsed_scope.start" : 342, "key.reusingastcontext" : false, - "key.typename" : "AnyItem", + "key.typename" : "any AnyItem", "key.typeusr" : "$s10ListableUI7AnyItem_pD", "key.usr" : "s:10ListableUI17ListStateObserverV13ItemReorderedV4itemAA03AnyF0_pvp" }, @@ -86836,11 +86884,11 @@ "key.reusingastcontext" : false, "key.substructure" : [ { - "key.annotated_decl" : "let layout: AnyListLayout<\/Type><\/Declaration>", + "key.annotated_decl" : "let layout: any AnyListLayout<\/Type><\/Declaration>", "key.column" : 14, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView+ContentSize.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> layout<\/decl.name>: AnyListLayout<\/ref.protocol><\/decl.var.type><\/decl.var.local>", + "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> layout<\/decl.name>: any AnyListLayout<\/ref.protocol><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 168, "key.line" : 53, @@ -86853,7 +86901,7 @@ "key.parsed_scope.end" : 53, "key.parsed_scope.start" : 53, "key.reusingastcontext" : false, - "key.typename" : "AnyListLayout", + "key.typename" : "any AnyListLayout", "key.typeusr" : "$s10ListableUI13AnyListLayout_pD", "key.usr" : "s:10ListableUI8ListViewC11contentSize2in3for14safeAreaInsets9itemLimitAA08MeasuredcF0VSo6CGSizeV_AA0C10PropertiesVSo06UIEdgeK0VSiSgtFZ6layoutL_AA03AnyC6Layout_pvp" }, @@ -87839,7 +87887,7 @@ "key.parsed_scope.end" : 15, "key.parsed_scope.start" : 15, "key.reusingastcontext" : false, - "key.typename" : "SectionedDiff.SectionChanges.Type", + "key.typename" : "SectionedDiff.SectionChanges.Type", "key.typeusr" : "$s10ListableUI13SectionedDiffV14SectionChangesVyAA0E0VAA13AnyIdentifierCAA0G4Item_pAI_GmD", "key.usr" : "s:10ListableUI8ListViewC010CollectionD7ChangesV07SectionF0a" }, @@ -87862,7 +87910,7 @@ "key.parsed_scope.end" : 16, "key.parsed_scope.start" : 16, "key.reusingastcontext" : false, - "key.typename" : "SectionedDiff.ItemChanges.Type", + "key.typename" : "SectionedDiff.ItemChanges.Type", "key.typeusr" : "$s10ListableUI13SectionedDiffV11ItemChangesVyAA7SectionVAA13AnyIdentifierCAA0hE0_pAI_GmD", "key.usr" : "s:10ListableUI8ListViewC010CollectionD7ChangesV04ItemF0a" }, @@ -87886,7 +87934,7 @@ "key.parsed_scope.start" : 18, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[SectionedDiff.SectionChanges.Removed]", + "key.typename" : "[SectionedDiff.SectionChanges.Removed]", "key.typeusr" : "$sSay10ListableUI13SectionedDiffV14SectionChangesV7RemovedVyAA0E0VAA13AnyIdentifierCAA0H4Item_pAK__GGD", "key.usr" : "s:10ListableUI8ListViewC010CollectionD7ChangesV15deletedSectionsSayAA13SectionedDiffV07SectionF0V7RemovedVyAA0K0VAA13AnyIdentifierCAA0M4Item_pAP__GGvp" }, @@ -87910,7 +87958,7 @@ "key.parsed_scope.start" : 19, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[SectionedDiff.SectionChanges.Added]", + "key.typename" : "[SectionedDiff.SectionChanges.Added]", "key.typeusr" : "$sSay10ListableUI13SectionedDiffV14SectionChangesV5AddedVyAA0E0VAA13AnyIdentifierCAA0H4Item_pAK__GGD", "key.usr" : "s:10ListableUI8ListViewC010CollectionD7ChangesV16insertedSectionsSayAA13SectionedDiffV07SectionF0V5AddedVyAA0K0VAA13AnyIdentifierCAA0M4Item_pAP__GGvp" }, @@ -87934,7 +87982,7 @@ "key.parsed_scope.start" : 20, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[SectionedDiff.SectionChanges.Moved]", + "key.typename" : "[SectionedDiff.SectionChanges.Moved]", "key.typeusr" : "$sSay10ListableUI13SectionedDiffV14SectionChangesV5MovedVyAA0E0VAA13AnyIdentifierCAA0H4Item_pAK__GGD", "key.usr" : "s:10ListableUI8ListViewC010CollectionD7ChangesV13movedSectionsSayAA13SectionedDiffV07SectionF0V5MovedVyAA0K0VAA13AnyIdentifierCAA0M4Item_pAP__GGvp" }, @@ -87958,7 +88006,7 @@ "key.parsed_scope.start" : 22, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[SectionedDiff.ItemChanges.Removed]", + "key.typename" : "[SectionedDiff.ItemChanges.Removed]", "key.typeusr" : "$sSay10ListableUI13SectionedDiffV11ItemChangesV7RemovedVyAA7SectionVAA13AnyIdentifierCAA0iE0_pAK__GGD", "key.usr" : "s:10ListableUI8ListViewC010CollectionD7ChangesV12deletedItemsSayAA13SectionedDiffV04ItemF0V7RemovedVyAA7SectionVAA13AnyIdentifierCAA0nK0_pAP__GGvp" }, @@ -87982,7 +88030,7 @@ "key.parsed_scope.start" : 23, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[SectionedDiff.ItemChanges.Added]", + "key.typename" : "[SectionedDiff.ItemChanges.Added]", "key.typeusr" : "$sSay10ListableUI13SectionedDiffV11ItemChangesV5AddedVyAA7SectionVAA13AnyIdentifierCAA0iE0_pAK__GGD", "key.usr" : "s:10ListableUI8ListViewC010CollectionD7ChangesV13insertedItemsSayAA13SectionedDiffV04ItemF0V5AddedVyAA7SectionVAA13AnyIdentifierCAA0nK0_pAP__GGvp" }, @@ -88006,7 +88054,7 @@ "key.parsed_scope.start" : 24, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[SectionedDiff.ItemChanges.Updated]", + "key.typename" : "[SectionedDiff.ItemChanges.Updated]", "key.typeusr" : "$sSay10ListableUI13SectionedDiffV11ItemChangesV7UpdatedVyAA7SectionVAA13AnyIdentifierCAA0iE0_pAK__GGD", "key.usr" : "s:10ListableUI8ListViewC010CollectionD7ChangesV12updatedItemsSayAA13SectionedDiffV04ItemF0V7UpdatedVyAA7SectionVAA13AnyIdentifierCAA0nK0_pAP__GGvp" }, @@ -88030,7 +88078,7 @@ "key.parsed_scope.start" : 25, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[SectionedDiff.ItemChanges.Moved]", + "key.typename" : "[SectionedDiff.ItemChanges.Moved]", "key.typeusr" : "$sSay10ListableUI13SectionedDiffV11ItemChangesV5MovedVyAA7SectionVAA13AnyIdentifierCAA0iE0_pAK__GGD", "key.usr" : "s:10ListableUI8ListViewC010CollectionD7ChangesV10movedItemsSayAA13SectionedDiffV04ItemF0V5MovedVyAA7SectionVAA13AnyIdentifierCAA0nK0_pAP__GGvp" }, @@ -88083,7 +88131,7 @@ "key.substructure" : [ ], - "key.typename" : "(ListView.CollectionViewChanges.Type) -> (SectionedDiff.SectionChanges) -> ListView.CollectionViewChanges", + "key.typename" : "(ListView.CollectionViewChanges.Type) -> (SectionedDiff.SectionChanges) -> ListView.CollectionViewChanges", "key.typeusr" : "$s14sectionChanges10ListableUI8ListViewC010CollectionfB0VAB13SectionedDiffV07SectionB0VyAB0J0VAB13AnyIdentifierCAB0K4Item_pAN_G_tcD", "key.usr" : "s:10ListableUI8ListViewC010CollectionD7ChangesV07sectionF0AeA13SectionedDiffV07SectionF0VyAA0J0VAA13AnyIdentifierCAA0K4Item_pAN_G_tcfc" } @@ -88450,11 +88498,11 @@ "key.reusingastcontext" : false, "key.substructure" : [ { - "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>", + "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", "key.column" : 17, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", + "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 53, "key.line" : 37, @@ -88467,16 +88515,16 @@ "key.parsed_scope.end" : 37, "key.parsed_scope.start" : 37, "key.reusingastcontext" : false, - "key.typename" : "AnyPresentationItemState", + "key.typename" : "any AnyPresentationItemState", "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", "key.usr" : "s:10ListableUI8ListViewC10DataSourceC010collectionD0_13cellForItemAtSo012UICollectionD4CellCSo0lD0C_10Foundation9IndexPathVtF4itemL_AA015AnyPresentationJ5State_pvp" }, { - "key.annotated_decl" : "let cell: AnyItemCell<\/Type><\/Declaration>", + "key.annotated_decl" : "let cell: any AnyItemCell<\/Type><\/Declaration>", "key.column" : 17, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> cell<\/decl.name>: AnyItemCell<\/ref.protocol><\/decl.var.type><\/decl.var.local>", + "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> cell<\/decl.name>: any AnyItemCell<\/ref.protocol><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 185, "key.line" : 41, @@ -88489,7 +88537,7 @@ "key.parsed_scope.end" : 41, "key.parsed_scope.start" : 41, "key.reusingastcontext" : false, - "key.typename" : "AnyItemCell", + "key.typename" : "any AnyItemCell", "key.typeusr" : "$s10ListableUI11AnyItemCell_pD", "key.usr" : "s:10ListableUI8ListViewC10DataSourceC010collectionD0_13cellForItemAtSo012UICollectionD4CellCSo0lD0C_10Foundation9IndexPathVtF0H0L_AA03AnyjM0_pvp" } @@ -88592,11 +88640,11 @@ "key.usr" : "s:10ListableUI8ListViewC10DataSourceC010collectionD0_33viewForSupplementaryElementOfKind2atSo020UICollectionReusableD0CSo0oD0C_SS10Foundation9IndexPathVtF9statePairL_AA17PresentationStateC012HeaderFooterdwU0Cvp" }, { - "key.annotated_decl" : "let headerFooter: AnyPresentationHeaderFooterState<\/Type>?<\/Declaration>", + "key.annotated_decl" : "let headerFooter: (any AnyPresentationHeaderFooterState<\/Type>)?<\/Declaration>", "key.column" : 17, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> headerFooter<\/decl.name>: AnyPresentationHeaderFooterState<\/ref.protocol>?<\/decl.var.type><\/decl.var.local>", + "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> headerFooter<\/decl.name>: (any AnyPresentationHeaderFooterState<\/ref.protocol>)?<\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 34, "key.line" : 71, @@ -88609,7 +88657,7 @@ "key.parsed_scope.end" : 71, "key.parsed_scope.start" : 71, "key.reusingastcontext" : false, - "key.typename" : "AnyPresentationHeaderFooterState?", + "key.typename" : "(any AnyPresentationHeaderFooterState)?", "key.typeusr" : "$s10ListableUI32AnyPresentationHeaderFooterState_pSgD", "key.usr" : "s:10ListableUI8ListViewC10DataSourceC010collectionD0_33viewForSupplementaryElementOfKind2atSo020UICollectionReusableD0CSo0oD0C_SS10Foundation9IndexPathVtF12headerFooterL_AA021AnyPresentationHeaderU5State_pSgvp" }, @@ -88703,11 +88751,11 @@ "key.reusingastcontext" : false, "key.substructure" : [ { - "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>", + "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", "key.column" : 17, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", + "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 53, "key.line" : 133, @@ -88720,7 +88768,7 @@ "key.parsed_scope.end" : 133, "key.parsed_scope.start" : 133, "key.reusingastcontext" : false, - "key.typename" : "AnyPresentationItemState", + "key.typename" : "any AnyPresentationItemState", "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", "key.usr" : "s:10ListableUI8ListViewC10DataSourceC010collectionD0_13canMoveItemAtSbSo012UICollectionD0C_10Foundation9IndexPathVtF4itemL_AA015AnyPresentationJ5State_pvp" } @@ -88803,11 +88851,11 @@ "key.usr" : "s:10ListableUI8ListViewC10DataSourceC010collectionD0_10moveItemAt2toySo012UICollectionD0C_10Foundation9IndexPathVAMtF6resultL_AA0I10ReorderingV6ResultVvp" }, { - "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>", + "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", "key.column" : 17, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", + "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 46, "key.line" : 170, @@ -88820,7 +88868,7 @@ "key.parsed_scope.end" : 170, "key.parsed_scope.start" : 170, "key.reusingastcontext" : false, - "key.typename" : "AnyPresentationItemState", + "key.typename" : "any AnyPresentationItemState", "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", "key.usr" : "s:10ListableUI8ListViewC10DataSourceC010collectionD0_10moveItemAt2toySo012UICollectionD0C_10Foundation9IndexPathVAMtF4itemL_AA015AnyPresentationI5State_pvp" }, @@ -89220,11 +89268,11 @@ "key.reusingastcontext" : false, "key.substructure" : [ { - "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>", + "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", "key.column" : 17, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", + "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 53, "key.line" : 30, @@ -89237,7 +89285,7 @@ "key.parsed_scope.end" : 30, "key.parsed_scope.start" : 30, "key.reusingastcontext" : false, - "key.typename" : "AnyPresentationItemState", + "key.typename" : "any AnyPresentationItemState", "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_21shouldHighlightItemAtSbSo012UICollectionD0C_10Foundation9IndexPathVtF4itemL_AA015AnyPresentationI5State_pvp" } @@ -89309,11 +89357,11 @@ "key.reusingastcontext" : false, "key.substructure" : [ { - "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>", + "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", "key.column" : 17, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", + "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 53, "key.line" : 37, @@ -89326,7 +89374,7 @@ "key.parsed_scope.end" : 37, "key.parsed_scope.start" : 37, "key.reusingastcontext" : false, - "key.typename" : "AnyPresentationItemState", + "key.typename" : "any AnyPresentationItemState", "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_18didHighlightItemAtySo012UICollectionD0C_10Foundation9IndexPathVtF4itemL_AA015AnyPresentationI5State_pvp" } @@ -89398,11 +89446,11 @@ "key.reusingastcontext" : false, "key.substructure" : [ { - "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>", + "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", "key.column" : 17, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", + "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 53, "key.line" : 44, @@ -89415,7 +89463,7 @@ "key.parsed_scope.end" : 44, "key.parsed_scope.start" : 44, "key.reusingastcontext" : false, - "key.typename" : "AnyPresentationItemState", + "key.typename" : "any AnyPresentationItemState", "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_20didUnhighlightItemAtySo012UICollectionD0C_10Foundation9IndexPathVtF4itemL_AA015AnyPresentationI5State_pvp" } @@ -89487,11 +89535,11 @@ "key.reusingastcontext" : false, "key.substructure" : [ { - "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>", + "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", "key.column" : 17, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", + "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 53, "key.line" : 53, @@ -89504,7 +89552,7 @@ "key.parsed_scope.end" : 53, "key.parsed_scope.start" : 53, "key.reusingastcontext" : false, - "key.typename" : "AnyPresentationItemState", + "key.typename" : "any AnyPresentationItemState", "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_18shouldSelectItemAtSbSo012UICollectionD0C_10Foundation9IndexPathVtF4itemL_AA015AnyPresentationI5State_pvp" } @@ -89644,11 +89692,11 @@ "key.reusingastcontext" : false, "key.substructure" : [ { - "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>", + "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", "key.column" : 17, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", + "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 53, "key.line" : 80, @@ -89661,7 +89709,7 @@ "key.parsed_scope.end" : 80, "key.parsed_scope.start" : 80, "key.reusingastcontext" : false, - "key.typename" : "AnyPresentationItemState", + "key.typename" : "any AnyPresentationItemState", "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_15didSelectItemAtySo012UICollectionD0C_10Foundation9IndexPathVtF4itemL_AA015AnyPresentationI5State_pvp" } @@ -89733,11 +89781,11 @@ "key.reusingastcontext" : false, "key.substructure" : [ { - "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>", + "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", "key.column" : 17, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", + "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 53, "key.line" : 98, @@ -89750,7 +89798,7 @@ "key.parsed_scope.end" : 98, "key.parsed_scope.start" : 98, "key.reusingastcontext" : false, - "key.typename" : "AnyPresentationItemState", + "key.typename" : "any AnyPresentationItemState", "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_17didDeselectItemAtySo012UICollectionD0C_10Foundation9IndexPathVtF4itemL_AA015AnyPresentationI5State_pvp" } @@ -89895,7 +89943,7 @@ "key.parsed_scope.start" : 130, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[ObjectIdentifier : AnyPresentationItemState]", + "key.typename" : "[ObjectIdentifier : any AnyPresentationItemState]", "key.typeusr" : "$sSDySO10ListableUI24AnyPresentationItemState_pGD", "key.usr" : "s:10ListableUI8ListViewC8DelegateC14displayedItems33_F1C23E5D52219C5540E9793E7A7E0D46LLSDySOAA24AnyPresentationItemState_pGvp" }, @@ -89962,11 +90010,11 @@ "key.reusingastcontext" : false, "key.substructure" : [ { - "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>", + "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", "key.column" : 17, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", + "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 53, "key.line" : 138, @@ -89979,7 +90027,7 @@ "key.parsed_scope.end" : 138, "key.parsed_scope.start" : 138, "key.reusingastcontext" : false, - "key.typename" : "AnyPresentationItemState", + "key.typename" : "any AnyPresentationItemState", "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_11willDisplay9forItemAtySo012UICollectionD0C_So0lD4CellC10Foundation9IndexPathVtF4itemL_AA015AnyPresentationJ5State_pvp" } @@ -90372,12 +90420,12 @@ "key.reusingastcontext" : false, "key.substructure" : [ { - "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>", + "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", "key.column" : 17, "key.decl_lang" : "source.lang.swift", "key.doc.comment" : "\n**Note**: We do not use either `from` or `to` index paths passed to this method to\nindex into the `presentationState`'s content – it has not yet been updated\nto reflect the move, because the move has not yet been committed. The `from` parameter\nis instead reflecting the current `UICollectionViewLayout`'s state – which will not match\nthe data source \/ `presentationState`.\n\nInstead, read the `stateForItem(at:)` off of the `layoutManager`. This will reflect\nthe right index path.\n\niOS 15 resolves this issue, by introducing\n```\nfunc collectionView(\n _ collectionView: UICollectionView,\n targetIndexPathForMoveOfItemFromOriginalIndexPath originalIndexPath: IndexPath,\n atCurrentIndexPath currentIndexPath: IndexPath,\n toProposedIndexPath proposedIndexPath: IndexPath\n) -> IndexPath\n```\nWhich passes the **original** index path, allowing a direct index into your data source.\nAlas, we do not yet support only iOS 15 and later, so, here we are.", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", + "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 52, "key.line" : 229, @@ -90390,7 +90438,7 @@ "key.parsed_scope.end" : 229, "key.parsed_scope.start" : 229, "key.reusingastcontext" : false, - "key.typename" : "AnyPresentationItemState", + "key.typename" : "any AnyPresentationItemState", "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_32targetIndexPathForMoveFromItemAt010toProposedhI010Foundation0hI0VSo012UICollectionD0C_A2KtF4itemL_AA015AnyPresentationM5State_pvp" }, @@ -91014,7 +91062,7 @@ "key.parsed_scope.end" : 22, "key.parsed_scope.start" : 20, "key.reusingastcontext" : false, - "key.typename" : "AnyListLayout", + "key.typename" : "any AnyListLayout", "key.typeusr" : "$s10ListableUI13AnyListLayout_pD", "key.usr" : "s:10ListableUI8ListViewC13LayoutManagerC6layoutAA03AnycE0_pvp" }, @@ -91070,7 +91118,7 @@ "key.substructure" : [ ], - "key.typename" : "(ListView.LayoutManager) -> (IndexPath) -> AnyPresentationItemState", + "key.typename" : "(ListView.LayoutManager) -> (IndexPath) -> any AnyPresentationItemState", "key.typeusr" : "$s2at10ListableUI24AnyPresentationItemState_p10Foundation9IndexPathV_tcD", "key.usr" : "s:10ListableUI8ListViewC13LayoutManagerC12stateForItem2atAA015AnyPresentationI5State_p10Foundation9IndexPathV_tF" }, @@ -91277,7 +91325,7 @@ "key.substructure" : [ ], - "key.typename" : "(ListView.Storage) -> (AnyPresentationItemState) -> IndexPath?", + "key.typename" : "(ListView.Storage) -> (any AnyPresentationItemState) -> IndexPath?", "key.typeusr" : "$s4item10Foundation9IndexPathVSg10ListableUI24AnyPresentationItemState_p_tcD", "key.usr" : "s:10ListableUI8ListViewC7StorageC6remove4item10Foundation9IndexPathVSgAA24AnyPresentationItemState_p_tF" } @@ -91296,19 +91344,19 @@ }, { "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift" : { "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 5365, + "key.length" : 5594, "key.offset" : 0, "key.substructure" : [ { "key.annotated_decl" : "public final class ListView : UIView<\/Type><\/Declaration>", - "key.bodylength" : 3478, + "key.bodylength" : 3707, "key.bodyoffset" : 141, "key.column" : 20, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift", "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView<\/ref.class><\/decl.class>", "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 3499, + "key.length" : 3728, "key.line" : 11, "key.modulename" : "ListableUI", "key.name" : "ListView", @@ -91316,7 +91364,7 @@ "key.nameoffset" : 131, "key.offset" : 121, "key.parsed_declaration" : "extension ListView", - "key.parsed_scope.end" : 100, + "key.parsed_scope.end" : 104, "key.parsed_scope.start" : 11, "key.reusingastcontext" : false, "key.substructure" : [ @@ -91329,14 +91377,14 @@ "key.offset" : 146 } ], - "key.bodylength" : 3439, + "key.bodylength" : 3668, "key.bodyoffset" : 178, "key.column" : 17, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> VisibleContent<\/decl.name><\/decl.class>", "key.kind" : "source.lang.swift.decl.class", - "key.length" : 3466, + "key.length" : 3695, "key.line" : 13, "key.modulename" : "ListableUI", "key.name" : "VisibleContent", @@ -91344,7 +91392,7 @@ "key.nameoffset" : 158, "key.offset" : 152, "key.parsed_declaration" : "final class VisibleContent", - "key.parsed_scope.end" : 99, + "key.parsed_scope.end" : 103, "key.parsed_scope.start" : 13, "key.reusingastcontext" : false, "key.substructure" : [ @@ -91413,14 +91461,14 @@ { "key.accessibility" : "source.lang.swift.accessibility.internal", "key.annotated_decl" : "func update(with view: ListView<\/Type>)<\/Declaration>", - "key.bodylength" : 1356, + "key.bodylength" : 1585, "key.bodyoffset" : 357, "key.column" : 14, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> update<\/decl.name>(with<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: ListView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1400, + "key.length" : 1629, "key.line" : 18, "key.modulename" : "ListableUI", "key.name" : "update(with:)", @@ -91428,7 +91476,7 @@ "key.nameoffset" : 319, "key.offset" : 314, "key.parsed_declaration" : "func update(with view : ListView)", - "key.parsed_scope.end" : 52, + "key.parsed_scope.end" : 56, "key.parsed_scope.start" : 18, "key.reusingastcontext" : false, "key.substructure" : [ @@ -91528,15 +91576,15 @@ "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> callStateReader<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 72, - "key.line" : 40, + "key.line" : 44, "key.modulename" : "ListableUI", "key.name" : "callStateReader", "key.namelength" : 15, - "key.nameoffset" : 1107, - "key.offset" : 1103, + "key.nameoffset" : 1336, + "key.offset" : 1332, "key.parsed_declaration" : "let callStateReader = removed.isEmpty == false || added.isEmpty == false", - "key.parsed_scope.end" : 40, - "key.parsed_scope.start" : 40, + "key.parsed_scope.end" : 44, + "key.parsed_scope.start" : 44, "key.reusingastcontext" : false, "key.typename" : "Bool", "key.typeusr" : "$sSbD", @@ -91551,22 +91599,22 @@ "key.accessibility" : "source.lang.swift.accessibility.internal", "key.annotated_decl" : "var info: Info<\/Type> { get }<\/Declaration>", "key.bodylength" : 361, - "key.bodyoffset" : 1749, + "key.bodyoffset" : 1978, "key.column" : 13, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> info<\/decl.name>: Info<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", "key.kind" : "source.lang.swift.decl.var.instance", "key.length" : 379, - "key.line" : 54, + "key.line" : 58, "key.modulename" : "ListableUI", "key.name" : "info", "key.namelength" : 4, - "key.nameoffset" : 1736, - "key.offset" : 1732, + "key.nameoffset" : 1965, + "key.offset" : 1961, "key.parsed_declaration" : "var info : Info", - "key.parsed_scope.end" : 63, - "key.parsed_scope.start" : 54, + "key.parsed_scope.end" : 67, + "key.parsed_scope.start" : 58, "key.reusingastcontext" : false, "key.typename" : "ListView.VisibleContent.Info", "key.typeusr" : "$s10ListableUI8ListViewC14VisibleContentC4InfoVD", @@ -91579,26 +91627,26 @@ { "key.attribute" : "source.decl.attribute.private", "key.length" : 7, - "key.offset" : 2129 + "key.offset" : 2358 } ], "key.bodylength" : 1382, - "key.bodyoffset" : 2229, + "key.bodyoffset" : 2458, "key.column" : 22, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> calculateVisibleContent<\/decl.name>(in<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: ListView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> (Set<\/ref.struct><Item<\/ref.struct>><\/tuple.element.type><\/tuple.element>, Set<\/ref.struct><HeaderFooter<\/ref.struct>><\/tuple.element.type><\/tuple.element>)<\/tuple><\/decl.function.returntype><\/decl.function.method.instance>", "key.kind" : "source.lang.swift.decl.function.method.instance", "key.length" : 1475, - "key.line" : 65, + "key.line" : 69, "key.modulename" : "ListableUI", "key.name" : "calculateVisibleContent(in:)", "key.namelength" : 43, - "key.nameoffset" : 2142, - "key.offset" : 2137, + "key.nameoffset" : 2371, + "key.offset" : 2366, "key.parsed_declaration" : "private func calculateVisibleContent(in view : ListView) -> (Set, Set)", - "key.parsed_scope.end" : 98, - "key.parsed_scope.start" : 65, + "key.parsed_scope.end" : 102, + "key.parsed_scope.start" : 69, "key.reusingastcontext" : false, "key.substructure" : [ { @@ -91609,15 +91657,15 @@ "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> visibleFrame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 45, - "key.line" : 67, + "key.line" : 71, "key.modulename" : "ListableUI", "key.name" : "visibleFrame", "key.namelength" : 12, - "key.nameoffset" : 2246, - "key.offset" : 2242, + "key.nameoffset" : 2475, + "key.offset" : 2471, "key.parsed_declaration" : "let visibleFrame = view.collectionView.bounds", - "key.parsed_scope.end" : 67, - "key.parsed_scope.start" : 67, + "key.parsed_scope.end" : 71, + "key.parsed_scope.start" : 71, "key.reusingastcontext" : false, "key.typename" : "CGRect", "key.typeusr" : "$sSo6CGRectVD", @@ -91631,15 +91679,15 @@ "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> visibleAttributes<\/decl.name>: [UICollectionViewLayoutAttributes<\/ref.class>]<\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 108, - "key.line" : 69, + "key.line" : 73, "key.modulename" : "ListableUI", "key.name" : "visibleAttributes", "key.namelength" : 17, - "key.nameoffset" : 2317, - "key.offset" : 2313, + "key.nameoffset" : 2546, + "key.offset" : 2542, "key.parsed_declaration" : "let visibleAttributes = view.collectionViewLayout.visibleLayoutAttributesForElements(in: visibleFrame) ?? []", - "key.parsed_scope.end" : 69, - "key.parsed_scope.start" : 69, + "key.parsed_scope.end" : 73, + "key.parsed_scope.start" : 73, "key.reusingastcontext" : false, "key.typename" : "[UICollectionViewLayoutAttributes]", "key.typeusr" : "$sSaySo32UICollectionViewLayoutAttributesCGD", @@ -91653,15 +91701,15 @@ "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> items<\/decl.name>: Set<\/ref.struct><Item<\/ref.struct>><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 26, - "key.line" : 71, + "key.line" : 75, "key.modulename" : "ListableUI", "key.name" : "items", "key.namelength" : 5, - "key.nameoffset" : 2451, - "key.offset" : 2447, + "key.nameoffset" : 2680, + "key.offset" : 2676, "key.parsed_declaration" : "var items : Set = []", - "key.parsed_scope.end" : 71, - "key.parsed_scope.start" : 71, + "key.parsed_scope.end" : 75, + "key.parsed_scope.start" : 75, "key.reusingastcontext" : false, "key.typename" : "Set", "key.typeusr" : "$sShy10ListableUI8ListViewC14VisibleContentC4ItemVGD", @@ -91675,15 +91723,15 @@ "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> headerFooters<\/decl.name>: Set<\/ref.struct><HeaderFooter<\/ref.struct>><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 42, - "key.line" : 72, + "key.line" : 76, "key.modulename" : "ListableUI", "key.name" : "headerFooters", "key.namelength" : 13, - "key.nameoffset" : 2490, - "key.offset" : 2486, + "key.nameoffset" : 2719, + "key.offset" : 2715, "key.parsed_declaration" : "var headerFooters : Set = []", - "key.parsed_scope.end" : 72, - "key.parsed_scope.start" : 72, + "key.parsed_scope.end" : 76, + "key.parsed_scope.start" : 76, "key.reusingastcontext" : false, "key.typename" : "Set", "key.typeusr" : "$sShy10ListableUI8ListViewC14VisibleContentC12HeaderFooterVGD", @@ -91707,7 +91755,7 @@ { "key.annotated_decl" : "final class VisibleContent<\/Declaration>", "key.bodylength" : 1706, - "key.bodyoffset" : 3657, + "key.bodyoffset" : 3886, "key.column" : 17, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", @@ -91718,24 +91766,24 @@ "key.modulename" : "ListableUI", "key.name" : "ListView.VisibleContent", "key.namelength" : 23, - "key.nameoffset" : 3632, - "key.offset" : 3622, + "key.nameoffset" : 3861, + "key.offset" : 3851, "key.parsed_declaration" : "extension ListView.VisibleContent", - "key.parsed_scope.end" : 161, - "key.parsed_scope.start" : 102, + "key.parsed_scope.end" : 165, + "key.parsed_scope.start" : 106, "key.reusingastcontext" : false, "key.substructure" : [ { "key.annotated_decl" : "struct HeaderFooter : Hashable<\/Type><\/Declaration>", "key.bodylength" : 568, - "key.bodyoffset" : 3698, + "key.bodyoffset" : 3927, "key.column" : 12, "key.decl_lang" : "source.lang.swift", "key.elements" : [ { "key.kind" : "source.lang.swift.structure.elem.typeref", "key.length" : 8, - "key.offset" : 3684 + "key.offset" : 3913 } ], "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", @@ -91747,15 +91795,15 @@ ], "key.kind" : "source.lang.swift.decl.struct", "key.length" : 605, - "key.line" : 104, + "key.line" : 108, "key.modulename" : "ListableUI", "key.name" : "HeaderFooter", "key.namelength" : 12, - "key.nameoffset" : 3669, - "key.offset" : 3662, + "key.nameoffset" : 3898, + "key.offset" : 3891, "key.parsed_declaration" : "struct HeaderFooter : Hashable", - "key.parsed_scope.end" : 122, - "key.parsed_scope.start" : 104, + "key.parsed_scope.end" : 126, + "key.parsed_scope.start" : 108, "key.reusingastcontext" : false, "key.substructure" : [ { @@ -91767,15 +91815,15 @@ "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> kind<\/decl.name>: SupplementaryKind<\/ref.enum><\/decl.var.type><\/decl.var.instance>", "key.kind" : "source.lang.swift.decl.var.instance", "key.length" : 28, - "key.line" : 106, + "key.line" : 110, "key.modulename" : "ListableUI", "key.name" : "kind", "key.namelength" : 4, - "key.nameoffset" : 3711, - "key.offset" : 3707, + "key.nameoffset" : 3940, + "key.offset" : 3936, "key.parsed_declaration" : "let kind : SupplementaryKind", - "key.parsed_scope.end" : 106, - "key.parsed_scope.start" : 106, + "key.parsed_scope.end" : 110, + "key.parsed_scope.start" : 110, "key.reusingastcontext" : false, "key.typename" : "SupplementaryKind", "key.typeusr" : "$s10ListableUI17SupplementaryKindOD", @@ -91790,15 +91838,15 @@ "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> indexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>", "key.kind" : "source.lang.swift.decl.var.instance", "key.length" : 25, - "key.line" : 107, + "key.line" : 111, "key.modulename" : "ListableUI", "key.name" : "indexPath", "key.namelength" : 9, - "key.nameoffset" : 3748, - "key.offset" : 3744, + "key.nameoffset" : 3977, + "key.offset" : 3973, "key.parsed_declaration" : "let indexPath : IndexPath", - "key.parsed_scope.end" : 107, - "key.parsed_scope.start" : 107, + "key.parsed_scope.end" : 111, + "key.parsed_scope.start" : 111, "key.reusingastcontext" : false, "key.typename" : "IndexPath", "key.typeusr" : "$s10Foundation9IndexPathVD", @@ -91813,15 +91861,15 @@ "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> headerFooter<\/decl.name>: PresentationState<\/ref.class>.HeaderFooterViewStatePair<\/ref.class><\/decl.var.type><\/decl.var.instance>", "key.kind" : "source.lang.swift.decl.var.instance", "key.length" : 62, - "key.line" : 109, + "key.line" : 113, "key.modulename" : "ListableUI", "key.name" : "headerFooter", "key.namelength" : 12, - "key.nameoffset" : 3791, - "key.offset" : 3787, + "key.nameoffset" : 4020, + "key.offset" : 4016, "key.parsed_declaration" : "let headerFooter : PresentationState.HeaderFooterViewStatePair", - "key.parsed_scope.end" : 109, - "key.parsed_scope.start" : 109, + "key.parsed_scope.end" : 113, + "key.parsed_scope.start" : 113, "key.reusingastcontext" : false, "key.typename" : "PresentationState.HeaderFooterViewStatePair", "key.typeusr" : "$s10ListableUI17PresentationStateC016HeaderFooterViewD4PairCD", @@ -91831,7 +91879,7 @@ "key.accessibility" : "source.lang.swift.accessibility.internal", "key.annotated_decl" : "static func == (lhs: `Self`, rhs: `Self`) -> Bool<\/Type><\/Declaration>", "key.bodylength" : 117, - "key.bodyoffset" : 3924, + "key.bodyoffset" : 4153, "key.column" : 21, "key.decl_lang" : "source.lang.swift", "key.doc.declaration" : "static func == (lhs: Self, rhs: Self) -> Bool", @@ -91868,20 +91916,20 @@ "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> == <\/decl.name>(lhs<\/decl.var.parameter.name>: `Self`<\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: `Self`<\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.operator.infix>", "key.kind" : "source.lang.swift.decl.function.method.static", "key.length" : 175, - "key.line" : 111, + "key.line" : 115, "key.modulename" : "ListableUI", "key.name" : "==(_:_:)", "key.namelength" : 27, - "key.nameoffset" : 3879, - "key.offset" : 3867, + "key.nameoffset" : 4108, + "key.offset" : 4096, "key.overrides" : [ { "key.usr" : "s:SQ2eeoiySbx_xtFZ" } ], "key.parsed_declaration" : "static func == (lhs : Self, rhs : Self) -> Bool", - "key.parsed_scope.end" : 114, - "key.parsed_scope.start" : 111, + "key.parsed_scope.end" : 118, + "key.parsed_scope.start" : 115, "key.reusingastcontext" : false, "key.substructure" : [ @@ -91894,7 +91942,7 @@ "key.accessibility" : "source.lang.swift.accessibility.internal", "key.annotated_decl" : "func hash(into hasher: inout Hasher<\/Type>)<\/Declaration>", "key.bodylength" : 154, - "key.bodyoffset" : 4106, + "key.bodyoffset" : 4335, "key.column" : 14, "key.decl_lang" : "source.lang.swift", "key.doc.declaration" : "func hash(into hasher: inout Hasher)", @@ -91926,20 +91974,20 @@ "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> hash<\/decl.name>(into<\/decl.var.parameter.argument_label> hasher<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Hasher<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", "key.kind" : "source.lang.swift.decl.function.method.instance", "key.length" : 201, - "key.line" : 116, + "key.line" : 120, "key.modulename" : "ListableUI", "key.name" : "hash(into:)", "key.namelength" : 31, - "key.nameoffset" : 4065, - "key.offset" : 4060, + "key.nameoffset" : 4294, + "key.offset" : 4289, "key.overrides" : [ { "key.usr" : "s:SH4hash4intoys6HasherVz_tF" } ], "key.parsed_declaration" : "func hash(into hasher: inout Hasher)", - "key.parsed_scope.end" : 121, - "key.parsed_scope.start" : 116, + "key.parsed_scope.end" : 125, + "key.parsed_scope.start" : 120, "key.reusingastcontext" : false, "key.substructure" : [ @@ -91956,14 +92004,14 @@ { "key.annotated_decl" : "struct Item : Hashable<\/Type><\/Declaration>", "key.bodylength" : 409, - "key.bodyoffset" : 4305, + "key.bodyoffset" : 4534, "key.column" : 12, "key.decl_lang" : "source.lang.swift", "key.elements" : [ { "key.kind" : "source.lang.swift.structure.elem.typeref", "key.length" : 8, - "key.offset" : 4291 + "key.offset" : 4520 } ], "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", @@ -91975,15 +92023,15 @@ ], "key.kind" : "source.lang.swift.decl.struct", "key.length" : 438, - "key.line" : 124, + "key.line" : 128, "key.modulename" : "ListableUI", "key.name" : "Item", "key.namelength" : 4, - "key.nameoffset" : 4284, - "key.offset" : 4277, + "key.nameoffset" : 4513, + "key.offset" : 4506, "key.parsed_declaration" : "struct Item : Hashable", - "key.parsed_scope.end" : 139, - "key.parsed_scope.start" : 124, + "key.parsed_scope.end" : 143, + "key.parsed_scope.start" : 128, "key.reusingastcontext" : false, "key.substructure" : [ { @@ -91995,15 +92043,15 @@ "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> indexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>", "key.kind" : "source.lang.swift.decl.var.instance", "key.length" : 25, - "key.line" : 126, + "key.line" : 130, "key.modulename" : "ListableUI", "key.name" : "indexPath", "key.namelength" : 9, - "key.nameoffset" : 4318, - "key.offset" : 4314, + "key.nameoffset" : 4547, + "key.offset" : 4543, "key.parsed_declaration" : "let indexPath : IndexPath", - "key.parsed_scope.end" : 126, - "key.parsed_scope.start" : 126, + "key.parsed_scope.end" : 130, + "key.parsed_scope.start" : 130, "key.reusingastcontext" : false, "key.typename" : "IndexPath", "key.typeusr" : "$s10Foundation9IndexPathVD", @@ -92018,17 +92066,17 @@ "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.instance>", "key.kind" : "source.lang.swift.decl.var.instance", "key.length" : 35, - "key.line" : 127, + "key.line" : 131, "key.modulename" : "ListableUI", "key.name" : "item", "key.namelength" : 4, - "key.nameoffset" : 4352, - "key.offset" : 4348, + "key.nameoffset" : 4581, + "key.offset" : 4577, "key.parsed_declaration" : "let item : AnyPresentationItemState", - "key.parsed_scope.end" : 127, - "key.parsed_scope.start" : 127, + "key.parsed_scope.end" : 131, + "key.parsed_scope.start" : 131, "key.reusingastcontext" : false, - "key.typename" : "AnyPresentationItemState", + "key.typename" : "any AnyPresentationItemState", "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC4ItemV4itemAA015AnyPresentationG5State_pvp" }, @@ -92036,7 +92084,7 @@ "key.accessibility" : "source.lang.swift.accessibility.internal", "key.annotated_decl" : "static func == (lhs: `Self`, rhs: `Self`) -> Bool<\/Type><\/Declaration>", "key.bodylength" : 77, - "key.bodyoffset" : 4458, + "key.bodyoffset" : 4687, "key.column" : 21, "key.decl_lang" : "source.lang.swift", "key.doc.declaration" : "static func == (lhs: Self, rhs: Self) -> Bool", @@ -92073,20 +92121,20 @@ "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> == <\/decl.name>(lhs<\/decl.var.parameter.name>: `Self`<\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: `Self`<\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.operator.infix>", "key.kind" : "source.lang.swift.decl.function.method.static", "key.length" : 135, - "key.line" : 129, + "key.line" : 133, "key.modulename" : "ListableUI", "key.name" : "==(_:_:)", "key.namelength" : 27, - "key.nameoffset" : 4413, - "key.offset" : 4401, + "key.nameoffset" : 4642, + "key.offset" : 4630, "key.overrides" : [ { "key.usr" : "s:SQ2eeoiySbx_xtFZ" } ], "key.parsed_declaration" : "static func == (lhs : Self, rhs : Self) -> Bool", - "key.parsed_scope.end" : 132, - "key.parsed_scope.start" : 129, + "key.parsed_scope.end" : 136, + "key.parsed_scope.start" : 133, "key.reusingastcontext" : false, "key.substructure" : [ @@ -92099,7 +92147,7 @@ "key.accessibility" : "source.lang.swift.accessibility.internal", "key.annotated_decl" : "func hash(into hasher: inout Hasher<\/Type>)<\/Declaration>", "key.bodylength" : 108, - "key.bodyoffset" : 4600, + "key.bodyoffset" : 4829, "key.column" : 14, "key.decl_lang" : "source.lang.swift", "key.doc.declaration" : "func hash(into hasher: inout Hasher)", @@ -92131,20 +92179,20 @@ "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> hash<\/decl.name>(into<\/decl.var.parameter.argument_label> hasher<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Hasher<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", "key.kind" : "source.lang.swift.decl.function.method.instance", "key.length" : 155, - "key.line" : 134, + "key.line" : 138, "key.modulename" : "ListableUI", "key.name" : "hash(into:)", "key.namelength" : 31, - "key.nameoffset" : 4559, - "key.offset" : 4554, + "key.nameoffset" : 4788, + "key.offset" : 4783, "key.overrides" : [ { "key.usr" : "s:SH4hash4intoys6HasherVz_tF" } ], "key.parsed_declaration" : "func hash(into hasher: inout Hasher)", - "key.parsed_scope.end" : 138, - "key.parsed_scope.start" : 134, + "key.parsed_scope.end" : 142, + "key.parsed_scope.start" : 138, "key.reusingastcontext" : false, "key.substructure" : [ @@ -92161,24 +92209,24 @@ { "key.annotated_decl" : "struct Info : Equatable<\/Type><\/Declaration>", "key.bodylength" : 369, - "key.bodyoffset" : 4992, + "key.bodyoffset" : 5221, "key.column" : 12, "key.decl_lang" : "source.lang.swift", "key.doc.column" : 12, "key.doc.comment" : "Note: Because this type exposes index paths and the internal `SupplementaryKind`,\nit is intended for internal usage or unit testing purposes only.\nPublic consumers and APIs should utilize `ListScrollPositionInfo`.", "key.doc.declaration" : "struct Info : Equatable", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.doc.full_as_xml" : "Info<\/Name>s:10ListableUI8ListViewC14VisibleContentC4InfoV<\/USR>struct Info : Equatable<\/Declaration>Note: Because this type exposes index paths and the internal SupplementaryKind<\/codeVoice>, it is intended for internal usage or unit testing purposes only. Public consumers and APIs should utilize ListScrollPositionInfo<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 144, + "key.doc.full_as_xml" : "Info<\/Name>s:10ListableUI8ListViewC14VisibleContentC4InfoV<\/USR>struct Info : Equatable<\/Declaration>Note: Because this type exposes index paths and the internal SupplementaryKind<\/codeVoice>, it is intended for internal usage or unit testing purposes only. Public consumers and APIs should utilize ListScrollPositionInfo<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>", + "key.doc.line" : 148, "key.doc.name" : "Info", "key.doc.type" : "Class", "key.doclength" : 234, - "key.docoffset" : 4725, + "key.docoffset" : 4954, "key.elements" : [ { "key.kind" : "source.lang.swift.structure.elem.typeref", "key.length" : 9, - "key.offset" : 4977 + "key.offset" : 5206 } ], "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", @@ -92190,15 +92238,15 @@ ], "key.kind" : "source.lang.swift.decl.struct", "key.length" : 399, - "key.line" : 144, + "key.line" : 148, "key.modulename" : "ListableUI", "key.name" : "Info", "key.namelength" : 4, - "key.nameoffset" : 4970, - "key.offset" : 4963, + "key.nameoffset" : 5199, + "key.offset" : 5192, "key.parsed_declaration" : "struct Info : Equatable", - "key.parsed_scope.end" : 160, - "key.parsed_scope.start" : 144, + "key.parsed_scope.end" : 164, + "key.parsed_scope.start" : 148, "key.reusingastcontext" : false, "key.substructure" : [ { @@ -92210,15 +92258,15 @@ "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> headerFooters<\/decl.name>: Set<\/ref.struct><HeaderFooter<\/ref.struct>><\/decl.var.type><\/decl.var.instance>", "key.kind" : "source.lang.swift.decl.var.instance", "key.length" : 37, - "key.line" : 146, + "key.line" : 150, "key.modulename" : "ListableUI", "key.name" : "headerFooters", "key.namelength" : 13, - "key.nameoffset" : 5005, - "key.offset" : 5001, + "key.nameoffset" : 5234, + "key.offset" : 5230, "key.parsed_declaration" : "var headerFooters : Set", - "key.parsed_scope.end" : 146, - "key.parsed_scope.start" : 146, + "key.parsed_scope.end" : 150, + "key.parsed_scope.start" : 150, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.internal", "key.typename" : "Set", @@ -92234,15 +92282,15 @@ "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> items<\/decl.name>: Set<\/ref.struct><Item<\/ref.struct>><\/decl.var.type><\/decl.var.instance>", "key.kind" : "source.lang.swift.decl.var.instance", "key.length" : 21, - "key.line" : 147, + "key.line" : 151, "key.modulename" : "ListableUI", "key.name" : "items", "key.namelength" : 5, - "key.nameoffset" : 5051, - "key.offset" : 5047, + "key.nameoffset" : 5280, + "key.offset" : 5276, "key.parsed_declaration" : "var items : Set", - "key.parsed_scope.end" : 147, - "key.parsed_scope.start" : 147, + "key.parsed_scope.end" : 151, + "key.parsed_scope.start" : 151, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.internal", "key.typename" : "Set", @@ -92253,14 +92301,14 @@ "key.accessibility" : "source.lang.swift.accessibility.internal", "key.annotated_decl" : "struct ListView<\/Type>.VisibleContent<\/Type>.Info<\/Type>.HeaderFooter : Hashable<\/Type><\/Declaration>", "key.bodylength" : 88, - "key.bodyoffset" : 5126, + "key.bodyoffset" : 5355, "key.column" : 16, "key.decl_lang" : "source.lang.swift", "key.elements" : [ { "key.kind" : "source.lang.swift.structure.elem.typeref", "key.length" : 8, - "key.offset" : 5108 + "key.offset" : 5337 } ], "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", @@ -92272,15 +92320,15 @@ ], "key.kind" : "source.lang.swift.decl.struct", "key.length" : 129, - "key.line" : 149, + "key.line" : 153, "key.modulename" : "ListableUI", "key.name" : "HeaderFooter", "key.namelength" : 12, - "key.nameoffset" : 5093, - "key.offset" : 5086, + "key.nameoffset" : 5322, + "key.offset" : 5315, "key.parsed_declaration" : "struct HeaderFooter : Hashable", - "key.parsed_scope.end" : 153, - "key.parsed_scope.start" : 149, + "key.parsed_scope.end" : 157, + "key.parsed_scope.start" : 153, "key.reusingastcontext" : false, "key.substructure" : [ { @@ -92292,15 +92340,15 @@ "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> kind<\/decl.name>: SupplementaryKind<\/ref.enum><\/decl.var.type><\/decl.var.instance>", "key.kind" : "source.lang.swift.decl.var.instance", "key.length" : 28, - "key.line" : 151, + "key.line" : 155, "key.modulename" : "ListableUI", "key.name" : "kind", "key.namelength" : 4, - "key.nameoffset" : 5143, - "key.offset" : 5139, + "key.nameoffset" : 5372, + "key.offset" : 5368, "key.parsed_declaration" : "var kind : SupplementaryKind", - "key.parsed_scope.end" : 151, - "key.parsed_scope.start" : 151, + "key.parsed_scope.end" : 155, + "key.parsed_scope.start" : 155, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.internal", "key.typename" : "SupplementaryKind", @@ -92316,15 +92364,15 @@ "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> indexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>", "key.kind" : "source.lang.swift.decl.var.instance", "key.length" : 25, - "key.line" : 152, + "key.line" : 156, "key.modulename" : "ListableUI", "key.name" : "indexPath", "key.namelength" : 9, - "key.nameoffset" : 5184, - "key.offset" : 5180, + "key.nameoffset" : 5413, + "key.offset" : 5409, "key.parsed_declaration" : "var indexPath : IndexPath", - "key.parsed_scope.end" : 152, - "key.parsed_scope.start" : 152, + "key.parsed_scope.end" : 156, + "key.parsed_scope.start" : 156, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.internal", "key.typename" : "IndexPath", @@ -92340,14 +92388,14 @@ "key.accessibility" : "source.lang.swift.accessibility.internal", "key.annotated_decl" : "struct ListView<\/Type>.VisibleContent<\/Type>.Info<\/Type>.Item : Hashable<\/Type><\/Declaration>", "key.bodylength" : 90, - "key.bodyoffset" : 5265, + "key.bodyoffset" : 5494, "key.column" : 16, "key.decl_lang" : "source.lang.swift", "key.elements" : [ { "key.kind" : "source.lang.swift.structure.elem.typeref", "key.length" : 8, - "key.offset" : 5247 + "key.offset" : 5476 } ], "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", @@ -92359,15 +92407,15 @@ ], "key.kind" : "source.lang.swift.decl.struct", "key.length" : 123, - "key.line" : 155, + "key.line" : 159, "key.modulename" : "ListableUI", "key.name" : "Item", "key.namelength" : 4, - "key.nameoffset" : 5240, - "key.offset" : 5233, + "key.nameoffset" : 5469, + "key.offset" : 5462, "key.parsed_declaration" : "struct Item : Hashable", - "key.parsed_scope.end" : 159, - "key.parsed_scope.start" : 155, + "key.parsed_scope.end" : 163, + "key.parsed_scope.start" : 159, "key.reusingastcontext" : false, "key.substructure" : [ { @@ -92379,15 +92427,15 @@ "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> identifier<\/decl.name>: AnyIdentifier<\/ref.class><\/decl.var.type><\/decl.var.instance>", "key.kind" : "source.lang.swift.decl.var.instance", "key.length" : 30, - "key.line" : 157, + "key.line" : 161, "key.modulename" : "ListableUI", "key.name" : "identifier", "key.namelength" : 10, - "key.nameoffset" : 5282, - "key.offset" : 5278, + "key.nameoffset" : 5511, + "key.offset" : 5507, "key.parsed_declaration" : "var identifier : AnyIdentifier", - "key.parsed_scope.end" : 157, - "key.parsed_scope.start" : 157, + "key.parsed_scope.end" : 161, + "key.parsed_scope.start" : 161, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.internal", "key.typename" : "AnyIdentifier", @@ -92403,15 +92451,15 @@ "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> indexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>", "key.kind" : "source.lang.swift.decl.var.instance", "key.length" : 25, - "key.line" : 158, + "key.line" : 162, "key.modulename" : "ListableUI", "key.name" : "indexPath", "key.namelength" : 9, - "key.nameoffset" : 5325, - "key.offset" : 5321, + "key.nameoffset" : 5554, + "key.offset" : 5550, "key.parsed_declaration" : "var indexPath : IndexPath", - "key.parsed_scope.end" : 158, - "key.parsed_scope.start" : 158, + "key.parsed_scope.end" : 162, + "key.parsed_scope.start" : 162, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.internal", "key.typename" : "IndexPath", @@ -92943,7 +92991,7 @@ "key.parsed_scope.start" : 184, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "AnySourcePresenter", + "key.typename" : "any AnySourcePresenter", "key.typeusr" : "$s10ListableUI18AnySourcePresenter_pD", "key.usr" : "s:10ListableUI8ListViewC15sourcePresenter33_A65B53D10B0C487915F0C0C4684244E8LLAA09AnySourceF0_pvp" }, @@ -93719,7 +93767,7 @@ "key.parsed_scope.end" : 352, "key.parsed_scope.start" : 352, "key.reusingastcontext" : false, - "key.typename" : "((KeyboardCurrentFrameProvider, (animationDuration: Double, animationCurve: UIView.AnimationCurve)) -> ()).Type", + "key.typename" : "((any KeyboardCurrentFrameProvider, (animationDuration: Double, animationCurve: UIView.AnimationCurve)) -> ()).Type", "key.typeusr" : "$sy10ListableUI28KeyboardCurrentFrameProvider_p_Sd17animationDuration_So20UIViewAnimationCurveV0gK0ttcmD", "key.usr" : "s:10ListableUI8ListViewC31KeyboardFrameWillChangeCallbacka" }, @@ -93760,7 +93808,7 @@ "key.parsed_scope.start" : 358, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((KeyboardCurrentFrameProvider, (animationDuration: Double, animationCurve: UIView.AnimationCurve)) -> ())?", + "key.typename" : "((any KeyboardCurrentFrameProvider, (animationDuration: Double, animationCurve: UIView.AnimationCurve)) -> ())?", "key.typeusr" : "$sy10ListableUI28KeyboardCurrentFrameProvider_p_Sd17animationDuration_So20UIViewAnimationCurveV0gK0ttcSgD", "key.usr" : "s:10ListableUI8ListViewC25onKeyboardFrameWillChangeyAA0f7CurrentG8Provider_p_Sd17animationDuration_So20UIViewAnimationCurveV0lP0ttcSgvp" }, @@ -94381,7 +94429,7 @@ "key.substructure" : [ ], - "key.typename" : "(ListView) -> (AnyItem, ScrollPosition, ViewAnimation, @escaping (Bool) -> ()) -> Bool", + "key.typename" : "(ListView) -> (any AnyItem, ScrollPosition, ViewAnimation, @escaping (Bool) -> ()) -> Bool", "key.typeusr" : "$s4item8position9animation10completionSb10ListableUI7AnyItem_p_AE14ScrollPositionVAE13ViewAnimationOySbctcD", "key.usr" : "s:10ListableUI8ListViewC8scrollTo4item8position9animation10completionSbAA7AnyItem_p_AA14ScrollPositionVAA0D9AnimationOySbctF" }, @@ -96761,7 +96809,7 @@ "key.usr" : "s:10ListableUI8ListViewC19performBatchUpdates33_A65B53D10B0C487915F0C0C4684244E8LL4with8animated17updateBackingData010collectionD16UpdateCompletion09animationX0yAA13SectionedDiffVyAA7SectionVAA13AnyIdentifierCAA7AnyItem_pAPG_SbyycyycySbctF0eG0L_yycvp" } ], - "key.typename" : "(ListView) -> (SectionedDiff, Bool, @escaping () -> (), @escaping () -> (), @escaping (Bool) -> ()) -> ()", + "key.typename" : "(ListView) -> (SectionedDiff, Bool, @escaping () -> (), @escaping () -> (), @escaping (Bool) -> ()) -> ()", "key.typeusr" : "$s4with8animated17updateBackingData30collectionViewUpdateCompletion09animationI0y10ListableUI13SectionedDiffVyAF7SectionVAF13AnyIdentifierCAF0P4Item_pALG_SbyycyycySbctcD", "key.usr" : "s:10ListableUI8ListViewC19performBatchUpdates33_A65B53D10B0C487915F0C0C4684244E8LL4with8animated17updateBackingData010collectionD16UpdateCompletion09animationX0yAA13SectionedDiffVyAA7SectionVAA13AnyIdentifierCAA7AnyItem_pAPG_SbyycyycySbctF" }, @@ -96796,7 +96844,7 @@ "key.substructure" : [ ], - "key.typename" : "(ListView.Type) -> ([Section], [Section]) -> SectionedDiff", + "key.typename" : "(ListView.Type) -> ([Section], [Section]) -> SectionedDiff", "key.typeusr" : "$s3old3new10ListableUI13SectionedDiffVyAC7SectionVAC13AnyIdentifierCAC0H4Item_pAIGSayAGG_ALtcD", "key.usr" : "s:10ListableUI8ListViewC8diffWith33_A65B53D10B0C487915F0C0C4684244E8LL3old3newAA13SectionedDiffVyAA7SectionVAA13AnyIdentifierCAA0U4Item_pAMGSayAKG_APtFZ" } @@ -97028,7 +97076,7 @@ "key.substructure" : [ ], - "key.typename" : "(ListView) -> (AnyItem) -> ()", + "key.typename" : "(ListView) -> (any AnyItem) -> ()", "key.typeusr" : "$s3fory10ListableUI7AnyItem_p_tcD", "key.usr" : "s:10ListableUI8ListViewC18coordinatorUpdated3foryAA7AnyItem_p_tF" } @@ -97104,7 +97152,7 @@ "key.substructure" : [ ], - "key.typename" : "(ListView) -> (AnyPresentationItemState) -> Bool", + "key.typename" : "(ListView) -> (any AnyPresentationItemState) -> Bool", "key.typeusr" : "$s3forSb10ListableUI24AnyPresentationItemState_p_tcD", "key.usr" : "s:10ListableUI8ListViewC12beginReorder3forSbAA24AnyPresentationItemState_p_tF" }, @@ -97136,7 +97184,7 @@ "key.substructure" : [ ], - "key.typename" : "(ListView) -> (ItemReordering.GestureRecognizer, AnyPresentationItemState) -> ()", + "key.typename" : "(ListView) -> (ItemReordering.GestureRecognizer, any AnyPresentationItemState) -> ()", "key.typeusr" : "$s4with3fory10ListableUI14ItemReorderingV17GestureRecognizerC_AC015AnyPresentationE5State_ptcD", "key.usr" : "s:10ListableUI8ListViewC27updateReorderTargetPosition4with3foryAA14ItemReorderingV17GestureRecognizerC_AA015AnyPresentationK5State_ptF" }, @@ -97168,7 +97216,7 @@ "key.substructure" : [ ], - "key.typename" : "(ListView) -> (AnyPresentationItemState, ReorderingActions.Result) -> ()", + "key.typename" : "(ListView) -> (any AnyPresentationItemState, ReorderingActions.Result) -> ()", "key.typeusr" : "$s3for4withy10ListableUI24AnyPresentationItemState_p_AC17ReorderingActionsC6ResultOtcD", "key.usr" : "s:10ListableUI8ListViewC10endReorder3for4withyAA24AnyPresentationItemState_p_AA17ReorderingActionsC6ResultOtF" }, @@ -97243,7 +97291,7 @@ "key.usr" : "s:10ListableUI8ListViewC17accessibilityMove4item9directionSbAA24AnyPresentationItemState_p_AA17ReorderingActionsC013AccessibilityF9DirectionOtF10targetPathL_10Foundation05IndexR0Vvp" } ], - "key.typename" : "(ListView) -> (AnyPresentationItemState, ReorderingActions.AccessibilityMoveDirection) -> Bool", + "key.typename" : "(ListView) -> (any AnyPresentationItemState, ReorderingActions.AccessibilityMoveDirection) -> Bool", "key.typeusr" : "$s4item9directionSb10ListableUI24AnyPresentationItemState_p_AC17ReorderingActionsC26AccessibilityMoveDirectionOtcD", "key.usr" : "s:10ListableUI8ListViewC17accessibilityMove4item9directionSbAA24AnyPresentationItemState_p_AA17ReorderingActionsC013AccessibilityF9DirectionOtF" }, @@ -97392,7 +97440,7 @@ "key.bodyoffset" : 60314, "key.column" : 12, "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.2.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIScrollView.h", + "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.5.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIScrollView.h", "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @_nonSendable(_assumed)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> class<\/syntaxtype.keyword> UIScrollView<\/decl.name> : UIView<\/ref.class>, NSCoding<\/ref.protocol>, UIFocusItemScrollableContainer<\/ref.protocol><\/decl.class>", "key.is_system" : true, "key.kind" : "source.lang.swift.decl.extension", @@ -98704,11 +98752,11 @@ "key.reusingastcontext" : false, "key.substructure" : [ { - "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>", + "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", "key.column" : 13, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/ListViewController.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", + "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 56, "key.line" : 163, @@ -98721,12 +98769,12 @@ "key.parsed_scope.end" : 163, "key.parsed_scope.start" : 163, "key.reusingastcontext" : false, - "key.typename" : "AnyPresentationItemState", + "key.typename" : "any AnyPresentationItemState", "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", "key.usr" : "s:10ListableUI8ListViewC020clearSelectionDuringD10WillAppear9alongside8animatedySo37UIViewControllerTransitionCoordinator_pSg_SbtF4itemL_AA24AnyPresentationItemState_pvp" } ], - "key.typename" : "(ListView) -> (UIViewControllerTransitionCoordinator?, Bool) -> ()", + "key.typename" : "(ListView) -> ((any UIViewControllerTransitionCoordinator)?, Bool) -> ()", "key.typeusr" : "$s9alongside8animatedySo37UIViewControllerTransitionCoordinator_pSg_SbtcD", "key.usr" : "s:10ListableUI8ListViewC020clearSelectionDuringD10WillAppear9alongside8animatedySo37UIViewControllerTransitionCoordinator_pSg_SbtF" } @@ -98870,7 +98918,7 @@ "key.usr" : "s:10ListableUI14ListViewSourceP7content4withAA7ContentVAA0E5StateCy0I0QzG_tF" } ], - "key.typename" : "ListViewSource.Protocol", + "key.typename" : "ListViewSource.Type", "key.typeusr" : "$s10ListableUI14ListViewSource_pmD", "key.usr" : "s:10ListableUI14ListViewSourceP" }, @@ -98940,7 +98988,7 @@ "key.usr" : "s:10ListableUI14ListViewSourcePAAE7content4withAA7ContentVAA0E5StateCy0I0QzG_tF" } ], - "key.typename" : "ListViewSource.Protocol", + "key.typename" : "ListViewSource.Type", "key.typeusr" : "$s10ListableUI14ListViewSource_pmD", "key.usr" : "s:10ListableUI14ListViewSourceP" }, @@ -99020,7 +99068,7 @@ "key.usr" : "s:10ListableUI18AnySourcePresenterP13reloadContentAA0G0VyF" } ], - "key.typename" : "AnySourcePresenter.Protocol", + "key.typename" : "AnySourcePresenter.Type", "key.typeusr" : "$s10ListableUI18AnySourcePresenter_pmD", "key.usr" : "s:10ListableUI18AnySourcePresenterP" }, @@ -101520,7 +101568,7 @@ "key.usr" : "s:10ListableUI30LocalizedCollatableItemContentP15collationStringSSvp" } ], - "key.typename" : "LocalizedCollatableItemContent.Protocol", + "key.typename" : "LocalizedCollatableItemContent.Type", "key.typeusr" : "$s10ListableUI30LocalizedCollatableItemContent_pmD", "key.usr" : "s:10ListableUI30LocalizedCollatableItemContentP" }, @@ -101606,7 +101654,7 @@ "key.usr" : "s:10ListableUI26AnyLocalizedCollatableItemP15collationStringSSvp" } ], - "key.typename" : "AnyLocalizedCollatableItem.Protocol", + "key.typename" : "AnyLocalizedCollatableItem.Type", "key.typeusr" : "$s10ListableUI26AnyLocalizedCollatableItem_pmD", "key.usr" : "s:10ListableUI26AnyLocalizedCollatableItemP" }, @@ -101739,7 +101787,7 @@ "key.usr" : "s:10ListableUI21LocalizedItemCollatorV8sections9collation4with_SayAA7SectionVGSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGyAC08CollatedI0V_AHztXEtFZ8collatedL_SayAOGvp" } ], - "key.typename" : "(LocalizedItemCollator.Type) -> (UILocalizedIndexedCollation, [AnyLocalizedCollatableItem], (LocalizedItemCollator.CollatedSection, inout Section) -> ()) -> [Section]", + "key.typename" : "(LocalizedItemCollator.Type) -> (UILocalizedIndexedCollation, [any AnyLocalizedCollatableItem], (LocalizedItemCollator.CollatedSection, inout Section) -> ()) -> [Section]", "key.typeusr" : "$s9collation4with_Say10ListableUI7SectionVGSo27UILocalizedIndexedCollationC_SayAC26AnyLocalizedCollatableItem_pGyAC0jL8CollatorV08CollatedE0V_AEztXEtcD", "key.usr" : "s:10ListableUI21LocalizedItemCollatorV8sections9collation4with_SayAA7SectionVGSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGyAC08CollatedI0V_AHztXEtFZ" }, @@ -101784,7 +101832,7 @@ "key.substructure" : [ ], - "key.typename" : "(LocalizedItemCollator.Type) -> (UILocalizedIndexedCollation, [AnyLocalizedCollatableItem]) -> [LocalizedItemCollator.CollatedSection]", + "key.typename" : "(LocalizedItemCollator.Type) -> (UILocalizedIndexedCollation, [any AnyLocalizedCollatableItem]) -> [LocalizedItemCollator.CollatedSection]", "key.typeusr" : "$s9collation5itemsSay10ListableUI21LocalizedItemCollatorV15CollatedSectionVGSo27UILocalizedIndexedCollationC_SayAC03Anye10CollatableF0_pGtcD", "key.usr" : "s:10ListableUI21LocalizedItemCollatorV7collate9collation5itemsSayAC15CollatedSectionVGSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGtFZ" }, @@ -101972,7 +102020,7 @@ "key.usr" : "s:10ListableUI21LocalizedItemCollatorV9collation5itemsACSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGtcfc8providerL_ypvp" } ], - "key.typename" : "(LocalizedItemCollator.Type) -> (UILocalizedIndexedCollation, [AnyLocalizedCollatableItem]) -> LocalizedItemCollator", + "key.typename" : "(LocalizedItemCollator.Type) -> (UILocalizedIndexedCollation, [any AnyLocalizedCollatableItem]) -> LocalizedItemCollator", "key.typeusr" : "$s9collation5items10ListableUI21LocalizedItemCollatorVSo27UILocalizedIndexedCollationC_SayAC03Anye10CollatableF0_pGtcD", "key.usr" : "s:10ListableUI21LocalizedItemCollatorV9collation5itemsACSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGtcfc" }, @@ -102049,7 +102097,7 @@ "key.parsed_scope.end" : 177, "key.parsed_scope.start" : 177, "key.reusingastcontext" : false, - "key.typename" : "AnyLocalizedCollatableItem", + "key.typename" : "any AnyLocalizedCollatableItem", "key.typeusr" : "$s10ListableUI26AnyLocalizedCollatableItem_pD", "key.usr" : "s:10ListableUI21LocalizedItemCollatorV8Provider33_7EA791928592DFF016E56E231602D101LLC4itemAA03Anyc10CollatableD0_pvp" }, @@ -102117,7 +102165,7 @@ "key.substructure" : [ ], - "key.typename" : "(LocalizedItemCollator.Provider.Type) -> (AnyLocalizedCollatableItem) -> LocalizedItemCollator.Provider", + "key.typename" : "(LocalizedItemCollator.Provider.Type) -> (any AnyLocalizedCollatableItem) -> LocalizedItemCollator.Provider", "key.typeusr" : "$s4item10ListableUI21LocalizedItemCollatorV8Provider33_7EA791928592DFF016E56E231602D101LLCAB03Anyd10CollatableE0_p_tcD", "key.usr" : "s:10ListableUI21LocalizedItemCollatorV8Provider33_7EA791928592DFF016E56E231602D101LLC4itemAfA03Anyc10CollatableD0_p_tcfc" } @@ -102293,7 +102341,7 @@ "key.parsed_scope.start" : 202, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "[AnyItem]", + "key.typename" : "[any AnyItem]", "key.typeusr" : "$sSay10ListableUI7AnyItem_pGD", "key.usr" : "s:10ListableUI21LocalizedItemCollatorV15CollatedSectionV5itemsSayAA03AnyD0_pGvp" } @@ -102308,7 +102356,7 @@ "key.usr" : "s:10ListableUI21LocalizedItemCollatorV" }, { - "key.annotated_decl" : "public struct Item<Content> : AnyItem, AnyItemConvertible where Content<\/Type> : ItemContent<\/Type><\/Declaration>", + "key.annotated_decl" : "public struct Item<Content> : AnyItem<\/Type>, AnyItemConvertible<\/Type> where Content<\/Type> : ItemContent<\/Type><\/Declaration>", "key.bodylength" : 90, "key.bodyoffset" : 7159, "key.column" : 15, @@ -102342,7 +102390,7 @@ } ], "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Item<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyItem, AnyItemConvertible where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", + "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Item<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyItem<\/ref.protocol>, AnyItemConvertible<\/ref.protocol> where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", "key.inheritedtypes" : [ { "key.name" : "AnyLocalizedCollatableItem" @@ -102507,7 +102555,7 @@ "key.parsed_scope.start" : 37, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "AnyItem", + "key.typename" : "any AnyItem", "key.typeusr" : "$s10ListableUI7AnyItem_pD", "key.usr" : "s:10ListableUI11ItemPreviewV4itemAA03AnyC0_pvp" }, @@ -102845,7 +102893,7 @@ "key.parsed_scope.start" : 70, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "AnyItem", + "key.typename" : "any AnyItem", "key.typeusr" : "$s10ListableUI7AnyItem_pD", "key.usr" : "s:10ListableUI11ItemPreviewV8previews3for4withQrAA03AnyC0_p_SayAC10PropertiesVGtFZ08PreviewsC0L_V4itemAaG_pvp" }, @@ -103012,7 +103060,7 @@ "key.usr" : "s:10ListableUI11ItemPreviewV8previews3for4withQrAA03AnyC0_p_SayAC10PropertiesVGtFZ0E5ItemsL_SayAcdeFQrAaG_p_AJtFZ08PreviewsC0L_VGvp" } ], - "key.typename" : "(ItemPreview.Type) -> (AnyItem, [ItemPreview.Properties]) -> some View", + "key.typename" : "(ItemPreview.Type) -> (any AnyItem, [ItemPreview.Properties]) -> some View", "key.typeusr" : "$s3for4withQr10ListableUI7AnyItem_p_SayAC0F7PreviewV10PropertiesVGtcD", "key.usr" : "s:10ListableUI11ItemPreviewV8previews3for4withQrAA03AnyC0_p_SayAC10PropertiesVGtFZ" }, @@ -103083,7 +103131,7 @@ "key.usr" : "s:10ListableUI11ItemPreviewV07withAllC6States3for5width10appearanceQrAA03AnyC0_p_14CoreFoundation7CGFloatVAA0cD10AppearanceVtFZ6statesL_SayAA0C5StateVGvp" } ], - "key.typename" : "(ItemPreview.Type) -> (AnyItem, CGFloat, ItemPreviewAppearance) -> some View", + "key.typename" : "(ItemPreview.Type) -> (any AnyItem, CGFloat, ItemPreviewAppearance) -> some View", "key.typeusr" : "$s3for5width10appearanceQr10ListableUI7AnyItem_p_14CoreFoundation7CGFloatVAD0G17PreviewAppearanceVtcD", "key.usr" : "s:10ListableUI11ItemPreviewV07withAllC6States3for5width10appearanceQrAA03AnyC0_p_14CoreFoundation7CGFloatVAA0cD10AppearanceVtFZ" }, @@ -103139,7 +103187,7 @@ "key.substructure" : [ ], - "key.typename" : "(ItemPreview.Type) -> (AnyItem, CGFloat, ItemState, ItemPreviewAppearance) -> ItemPreview", + "key.typename" : "(ItemPreview.Type) -> (any AnyItem, CGFloat, ItemState, ItemPreviewAppearance) -> ItemPreview", "key.typeusr" : "$s_5width5state10appearance10ListableUI11ItemPreviewVAD03AnyF0_p_14CoreFoundation7CGFloatVAD0F5StateVAD0fG10AppearanceVtcD", "key.usr" : "s:10ListableUI11ItemPreviewV_5width5state10appearanceAcA03AnyC0_p_14CoreFoundation7CGFloatVAA0C5StateVAA0cD10AppearanceVtcfc" }, @@ -103189,7 +103237,7 @@ "key.substructure" : [ ], - "key.typename" : "(ItemPreview.Type) -> (AnyItem, ItemPreview.Properties) -> ItemPreview", + "key.typename" : "(ItemPreview.Type) -> (any AnyItem, ItemPreview.Properties) -> ItemPreview", "key.typeusr" : "$s_10properties10ListableUI11ItemPreviewVAB03AnyD0_p_AD10PropertiesVtcD", "key.usr" : "s:10ListableUI11ItemPreviewV_10propertiesAcA03AnyC0_p_AC10PropertiesVtcfc" }, @@ -103354,7 +103402,7 @@ "key.parsed_scope.start" : 174, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "AnyItem", + "key.typename" : "any AnyItem", "key.typeusr" : "$s10ListableUI7AnyItem_pD", "key.usr" : "s:10ListableUI11ItemPreviewV0cD7Wrapper33_F9C4BD5BF772FC170B515C3EF40454DBLLV4itemAA03AnyC0_pvp" }, @@ -104012,7 +104060,7 @@ "key.substructure" : [ ], - "key.typename" : "(ItemPreviewView.Type) -> (CGFloat, ItemState, ItemPreviewAppearance, AnyItem) -> ItemPreviewView", + "key.typename" : "(ItemPreviewView.Type) -> (CGFloat, ItemState, ItemPreviewAppearance, any AnyItem) -> ItemPreviewView", "key.typeusr" : "$s4with5state10appearance4item10ListableUI15ItemPreviewViewC14CoreFoundation7CGFloatV_AE0G5StateVAE0gH10AppearanceVAE03AnyG0_ptcD", "key.usr" : "s:10ListableUI15ItemPreviewViewC4with5state10appearance4itemAC14CoreFoundation7CGFloatV_AA0C5StateVAA0cD10AppearanceVAA03AnyC0_ptcfc" }, @@ -104094,11 +104142,11 @@ "key.usr" : "s:10ListableUI15ItemPreviewViewC6update4with5state10appearance4itemy14CoreFoundation7CGFloatV_AA0C5StateVAA0cD10AppearanceVAA03AnyC0_ptF9indexPathL_0L005IndexR0Vvp" }, { - "key.annotated_decl" : "let presentationState: AnyPresentationItemState<\/Type><\/Declaration>", + "key.annotated_decl" : "let presentationState: any AnyPresentationItemState<\/Type><\/Declaration>", "key.column" : 13, "key.decl_lang" : "source.lang.swift", "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> presentationState<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", + "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> presentationState<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", "key.kind" : "source.lang.swift.decl.var.local", "key.length" : 83, "key.line" : 102, @@ -104111,12 +104159,12 @@ "key.parsed_scope.end" : 102, "key.parsed_scope.start" : 102, "key.reusingastcontext" : false, - "key.typename" : "AnyPresentationItemState", + "key.typename" : "any AnyPresentationItemState", "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", "key.usr" : "s:10ListableUI15ItemPreviewViewC6update4with5state10appearance4itemy14CoreFoundation7CGFloatV_AA0C5StateVAA0cD10AppearanceVAA03AnyC0_ptF012presentationN0L_AA0p12PresentationcN0_pvp" } ], - "key.typename" : "(ItemPreviewView) -> (CGFloat, ItemState, ItemPreviewAppearance, AnyItem) -> ()", + "key.typename" : "(ItemPreviewView) -> (CGFloat, ItemState, ItemPreviewAppearance, any AnyItem) -> ()", "key.typeusr" : "$s4with5state10appearance4itemy14CoreFoundation7CGFloatV_10ListableUI9ItemStateVAH0J17PreviewAppearanceVAH03AnyJ0_ptcD", "key.usr" : "s:10ListableUI15ItemPreviewViewC6update4with5state10appearance4itemy14CoreFoundation7CGFloatV_AA0C5StateVAA0cD10AppearanceVAA03AnyC0_ptF" }, @@ -105164,7 +105212,7 @@ "key.parsed_scope.start" : 13, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "AnyPresentationItemState?", + "key.typename" : "(any AnyPresentationItemState)?", "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pSgD", "key.usr" : "s:10ListableUI17ReorderingActionsC4itemAA24AnyPresentationItemState_pSgvp" }, @@ -105195,7 +105243,7 @@ "key.parsed_scope.start" : 14, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "ReorderingActionsDelegate?", + "key.typename" : "(any ReorderingActionsDelegate)?", "key.typeusr" : "$s10ListableUI25ReorderingActionsDelegate_pSgD", "key.usr" : "s:10ListableUI17ReorderingActionsC8delegateAA0cD8Delegate_pSgvp" }, @@ -105687,7 +105735,7 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (AnyPresentationItemState) -> Bool", + "key.typename" : " (Self) -> (any AnyPresentationItemState) -> Bool", "key.typeusr" : "$s3forSb10ListableUI24AnyPresentationItemState_p_tcD", "key.usr" : "s:10ListableUI25ReorderingActionsDelegateP12beginReorder3forSbAA24AnyPresentationItemState_p_tF" }, @@ -105713,7 +105761,7 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (ItemReordering.GestureRecognizer, AnyPresentationItemState) -> ()", + "key.typename" : " (Self) -> (ItemReordering.GestureRecognizer, any AnyPresentationItemState) -> ()", "key.typeusr" : "$s4with3fory10ListableUI14ItemReorderingV17GestureRecognizerC_AC015AnyPresentationE5State_ptcD", "key.usr" : "s:10ListableUI25ReorderingActionsDelegateP27updateReorderTargetPosition4with3foryAA04ItemC0V17GestureRecognizerC_AA015AnyPresentationL5State_ptF" }, @@ -105739,7 +105787,7 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (AnyPresentationItemState, ReorderingActions.Result) -> ()", + "key.typename" : " (Self) -> (any AnyPresentationItemState, ReorderingActions.Result) -> ()", "key.typeusr" : "$s3for4withy10ListableUI24AnyPresentationItemState_p_AC17ReorderingActionsC6ResultOtcD", "key.usr" : "s:10ListableUI25ReorderingActionsDelegateP10endReorder3for4withyAA24AnyPresentationItemState_p_AA0cD0C6ResultOtF" }, @@ -105765,12 +105813,12 @@ "key.substructure" : [ ], - "key.typename" : " (Self) -> (AnyPresentationItemState, ReorderingActions.AccessibilityMoveDirection) -> Bool", + "key.typename" : " (Self) -> (any AnyPresentationItemState, ReorderingActions.AccessibilityMoveDirection) -> Bool", "key.typeusr" : "$s4item9directionSb10ListableUI24AnyPresentationItemState_p_AC17ReorderingActionsC26AccessibilityMoveDirectionOtcD", "key.usr" : "s:10ListableUI25ReorderingActionsDelegateP17accessibilityMove4item9directionSbAA24AnyPresentationItemState_p_AA0cD0C013AccessibilityG9DirectionOtF" } ], - "key.typename" : "ReorderingActionsDelegate.Protocol", + "key.typename" : "ReorderingActionsDelegate.Type", "key.typeusr" : "$s10ListableUI25ReorderingActionsDelegate_pmD", "key.usr" : "s:10ListableUI25ReorderingActionsDelegateP" } @@ -106534,7 +106582,7 @@ "key.parsed_scope.start" : 22, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "AnyHeaderFooterConvertible?", + "key.typename" : "(any AnyHeaderFooterConvertible)?", "key.typeusr" : "$s10ListableUI26AnyHeaderFooterConvertible_pSgD", "key.usr" : "s:10ListableUI7SectionV6headerAA26AnyHeaderFooterConvertible_pSgvp" }, @@ -106575,7 +106623,7 @@ "key.parsed_scope.start" : 25, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "AnyHeaderFooterConvertible?", + "key.typename" : "(any AnyHeaderFooterConvertible)?", "key.typeusr" : "$s10ListableUI26AnyHeaderFooterConvertible_pSgD", "key.usr" : "s:10ListableUI7SectionV6footerAA26AnyHeaderFooterConvertible_pSgvp" }, @@ -106616,7 +106664,7 @@ "key.parsed_scope.start" : 28, "key.reusingastcontext" : false, "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "[AnyItem]", + "key.typename" : "[any AnyItem]", "key.typeusr" : "$sSay10ListableUI7AnyItem_pGD", "key.usr" : "s:10ListableUI7SectionV5itemsSayAA7AnyItem_pGvp" }, @@ -106916,7 +106964,7 @@ "key.usr" : "s:10ListableUI7SectionV_7layouts6header6footer10reordering5items9configureACx_AA0C7LayoutsVAA26AnyHeaderFooterConvertible_pSgAmA0C10ReorderingVSayAA0k4ItemN0_pGyACzXEtcSHRzlufc15IdentifierValueL_xmfp" } ], - "key.typename" : " (Section.Type) -> (IdentifierValue, SectionLayouts, AnyHeaderFooterConvertible?, AnyHeaderFooterConvertible?, SectionReordering, [AnyItemConvertible], (inout Section) -> ()) -> Section", + "key.typename" : " (Section.Type) -> (IdentifierValue, SectionLayouts, (any AnyHeaderFooterConvertible)?, (any AnyHeaderFooterConvertible)?, SectionReordering, [any AnyItemConvertible], (inout Section) -> ()) -> Section", "key.typeusr" : "$s_7layouts6header6footer10reordering5items9configure10ListableUI7SectionVx_AG0I7LayoutsVAG26AnyHeaderFooterConvertible_pSgAmG0I10ReorderingVSayAG0k4ItemN0_pGyAIzXEtcSHRzluD", "key.usr" : "s:10ListableUI7SectionV_7layouts6header6footer10reordering5items9configureACx_AA0C7LayoutsVAA26AnyHeaderFooterConvertible_pSgAmA0C10ReorderingVSayAA0k4ItemN0_pGyACzXEtcSHRzlufc" }, @@ -107011,7 +107059,7 @@ }, { "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init<IdentifierValue>(_ identifier: IdentifierValue<\/Type>, layouts: SectionLayouts<\/Type> = .init(), reordering: SectionReordering<\/Type> = .init(), @ListableBuilder<\/Type><AnyItemConvertible<\/Type>> items: () -> [AnyItemConvertible<\/Type>], header: () -> AnyHeaderFooterConvertible<\/Type>? = { nil }, footer: () -> AnyHeaderFooterConvertible<\/Type>? = { nil }) where IdentifierValue<\/Type> : Hashable<\/Type><\/Declaration>", + "key.annotated_decl" : "public init<IdentifierValue>(_ identifier: IdentifierValue<\/Type>, layouts: SectionLayouts<\/Type> = .init(), reordering: SectionReordering<\/Type> = .init(), @ListableBuilder<\/Type><any AnyItemConvertible<\/Type>> items: () -> [AnyItemConvertible<\/Type>], header: () -> AnyHeaderFooterConvertible<\/Type>? = { nil }, footer: () -> AnyHeaderFooterConvertible<\/Type>? = { nil }) where IdentifierValue<\/Type> : Hashable<\/Type><\/Declaration>", "key.attributes" : [ { "key.attribute" : "source.decl.attribute.public", @@ -107025,16 +107073,16 @@ "key.decl_lang" : "source.lang.swift", "key.doc.column" : 12, "key.doc.comment" : "Creates a new section with result builder-style APIs.", - "key.doc.declaration" : "public init(_ identifier: IdentifierValue, layouts: SectionLayouts = .init(), reordering: SectionReordering = .init(), @ListableUI.ListableBuilder items: () -> [AnyItemConvertible], header: () -> AnyHeaderFooterConvertible? = { nil }, footer: () -> AnyHeaderFooterConvertible? = { nil }) where IdentifierValue : Hashable", + "key.doc.declaration" : "public init(_ identifier: IdentifierValue, layouts: SectionLayouts = .init(), reordering: SectionReordering = .init(), @ListableUI.ListableBuilder items: () -> [AnyItemConvertible], header: () -> AnyHeaderFooterConvertible? = { nil }, footer: () -> AnyHeaderFooterConvertible? = { nil }) where IdentifierValue : Hashable", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift", - "key.doc.full_as_xml" : "init(_:layouts:reordering:items:header:footer:)<\/Name>s:10ListableUI7SectionV_7layouts10reordering5items6header6footerACx_AA0C7LayoutsVAA0C10ReorderingVSayAA18AnyItemConvertible_pGyXEAA0k12HeaderFooterM0_pSgyXEAPyXEtcSHRzlufc<\/USR>public init<IdentifierValue>(_ identifier: IdentifierValue, layouts: SectionLayouts = .init(), reordering: SectionReordering = .init(), @ListableUI.ListableBuilder<ListableUI.AnyItemConvertible> items: () -> [AnyItemConvertible], header: () -> AnyHeaderFooterConvertible? = { nil }, footer: () -> AnyHeaderFooterConvertible? = { nil }) where IdentifierValue : Hashable<\/Declaration>Creates a new section with result builder-style APIs.<\/Para><\/Abstract><\/CommentParts><\/Function>", + "key.doc.full_as_xml" : "init(_:layouts:reordering:items:header:footer:)<\/Name>s:10ListableUI7SectionV_7layouts10reordering5items6header6footerACx_AA0C7LayoutsVAA0C10ReorderingVSayAA18AnyItemConvertible_pGyXEAA0k12HeaderFooterM0_pSgyXEAPyXEtcSHRzlufc<\/USR>public init<IdentifierValue>(_ identifier: IdentifierValue, layouts: SectionLayouts = .init(), reordering: SectionReordering = .init(), @ListableUI.ListableBuilder<any ListableUI.AnyItemConvertible> items: () -> [AnyItemConvertible], header: () -> AnyHeaderFooterConvertible? = { nil }, footer: () -> AnyHeaderFooterConvertible? = { nil }) where IdentifierValue : Hashable<\/Declaration>Creates a new section with result builder-style APIs.<\/Para><\/Abstract><\/CommentParts><\/Function>", "key.doc.line" : 122, "key.doc.name" : "init(_:layouts:reordering:items:header:footer:)", "key.doc.type" : "Function", "key.doclength" : 58, "key.docoffset" : 3487, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><IdentifierValue<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: IdentifierValue<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, layouts<\/decl.var.parameter.argument_label>: SectionLayouts<\/ref.struct><\/decl.var.parameter.type> = .init()<\/decl.var.parameter>, reordering<\/decl.var.parameter.argument_label>: SectionReordering<\/ref.struct><\/decl.var.parameter.type> = .init()<\/decl.var.parameter>, @ListableBuilder<\/ref.enum><AnyItemConvertible<\/ref.protocol>><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> items<\/decl.var.parameter.argument_label>: () -> [AnyItemConvertible<\/ref.protocol>]<\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, header<\/decl.var.parameter.argument_label>: () -> AnyHeaderFooterConvertible<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { nil }<\/decl.var.parameter>, footer<\/decl.var.parameter.argument_label>: () -> AnyHeaderFooterConvertible<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { nil }<\/decl.var.parameter>) where<\/syntaxtype.keyword> IdentifierValue<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.constructor>", + "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><IdentifierValue<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: IdentifierValue<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, layouts<\/decl.var.parameter.argument_label>: SectionLayouts<\/ref.struct><\/decl.var.parameter.type> = .init()<\/decl.var.parameter>, reordering<\/decl.var.parameter.argument_label>: SectionReordering<\/ref.struct><\/decl.var.parameter.type> = .init()<\/decl.var.parameter>, @ListableBuilder<\/ref.enum><any AnyItemConvertible<\/ref.protocol>><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> items<\/decl.var.parameter.argument_label>: () -> [AnyItemConvertible<\/ref.protocol>]<\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, header<\/decl.var.parameter.argument_label>: () -> AnyHeaderFooterConvertible<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { nil }<\/decl.var.parameter>, footer<\/decl.var.parameter.argument_label>: () -> AnyHeaderFooterConvertible<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { nil }<\/decl.var.parameter>) where<\/syntaxtype.keyword> IdentifierValue<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.constructor>", "key.kind" : "source.lang.swift.decl.function.method.instance", "key.length" : 641, "key.line" : 122, @@ -107094,13 +107142,13 @@ "key.usr" : "s:10ListableUI7SectionV_7layouts10reordering5items6header6footerACx_AA0C7LayoutsVAA0C10ReorderingVSayAA18AnyItemConvertible_pGyXEAA0k12HeaderFooterM0_pSgyXEAPyXEtcSHRzlufc15IdentifierValueL_xmfp" } ], - "key.typename" : " (Section.Type) -> (IdentifierValue, SectionLayouts, SectionReordering, () -> [AnyItemConvertible], () -> AnyHeaderFooterConvertible?, () -> AnyHeaderFooterConvertible?) -> Section", + "key.typename" : " (Section.Type) -> (IdentifierValue, SectionLayouts, SectionReordering, () -> [any AnyItemConvertible], () -> (any AnyHeaderFooterConvertible)?, () -> (any AnyHeaderFooterConvertible)?) -> Section", "key.typeusr" : "$s_7layouts10reordering5items6header6footer10ListableUI7SectionVx_AF0H7LayoutsVAF0H10ReorderingVSayAF18AnyItemConvertible_pGyXEAF0k12HeaderFooterM0_pSgyXEAPyXEtcSHRzluD", "key.usr" : "s:10ListableUI7SectionV_7layouts10reordering5items6header6footerACx_AA0C7LayoutsVAA0C10ReorderingVSayAA18AnyItemConvertible_pGyXEAA0k12HeaderFooterM0_pSgyXEAPyXEtcSHRzlufc" }, { "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init<IdentifierValue>(_ identifier: IdentifierValue<\/Type>, @ListableBuilder<\/Type><AnyItemConvertible<\/Type>> items: () -> [AnyItemConvertible<\/Type>], header: () -> AnyHeaderFooterConvertible<\/Type>? = { nil }, footer: () -> AnyHeaderFooterConvertible<\/Type>? = { nil }) where IdentifierValue<\/Type> : Hashable<\/Type><\/Declaration>", + "key.annotated_decl" : "public init<IdentifierValue>(_ identifier: IdentifierValue<\/Type>, @ListableBuilder<\/Type><any AnyItemConvertible<\/Type>> items: () -> [AnyItemConvertible<\/Type>], header: () -> AnyHeaderFooterConvertible<\/Type>? = { nil }, footer: () -> AnyHeaderFooterConvertible<\/Type>? = { nil }) where IdentifierValue<\/Type> : Hashable<\/Type><\/Declaration>", "key.attributes" : [ { "key.attribute" : "source.decl.attribute.public", @@ -107114,16 +107162,16 @@ "key.decl_lang" : "source.lang.swift", "key.doc.column" : 12, "key.doc.comment" : "Creates a new section with result builder-style APIs.", - "key.doc.declaration" : "public init(_ identifier: IdentifierValue, @ListableUI.ListableBuilder items: () -> [AnyItemConvertible], header: () -> AnyHeaderFooterConvertible? = { nil }, footer: () -> AnyHeaderFooterConvertible? = { nil }) where IdentifierValue : Hashable", + "key.doc.declaration" : "public init(_ identifier: IdentifierValue, @ListableUI.ListableBuilder items: () -> [AnyItemConvertible], header: () -> AnyHeaderFooterConvertible? = { nil }, footer: () -> AnyHeaderFooterConvertible? = { nil }) where IdentifierValue : Hashable", "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift", - "key.doc.full_as_xml" : "init(_:items:header:footer:)<\/Name>s:10ListableUI7SectionV_5items6header6footerACx_SayAA18AnyItemConvertible_pGyXEAA0g12HeaderFooterI0_pSgyXEAJyXEtcSHRzlufc<\/USR>public init<IdentifierValue>(_ identifier: IdentifierValue, @ListableUI.ListableBuilder<ListableUI.AnyItemConvertible> items: () -> [AnyItemConvertible], header: () -> AnyHeaderFooterConvertible? = { nil }, footer: () -> AnyHeaderFooterConvertible? = { nil }) where IdentifierValue : Hashable<\/Declaration>Creates a new section with result builder-style APIs.<\/Para><\/Abstract><\/CommentParts><\/Function>", + "key.doc.full_as_xml" : "init(_:items:header:footer:)<\/Name>s:10ListableUI7SectionV_5items6header6footerACx_SayAA18AnyItemConvertible_pGyXEAA0g12HeaderFooterI0_pSgyXEAJyXEtcSHRzlufc<\/USR>public init<IdentifierValue>(_ identifier: IdentifierValue, @ListableUI.ListableBuilder<any ListableUI.AnyItemConvertible> items: () -> [AnyItemConvertible], header: () -> AnyHeaderFooterConvertible? = { nil }, footer: () -> AnyHeaderFooterConvertible? = { nil }) where IdentifierValue : Hashable<\/Declaration>Creates a new section with result builder-style APIs.<\/Para><\/Abstract><\/CommentParts><\/Function>", "key.doc.line" : 142, "key.doc.name" : "init(_:items:header:footer:)", "key.doc.type" : "Function", "key.doclength" : 58, "key.docoffset" : 4207, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><IdentifierValue<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: IdentifierValue<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, @ListableBuilder<\/ref.enum><AnyItemConvertible<\/ref.protocol>><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> items<\/decl.var.parameter.argument_label>: () -> [AnyItemConvertible<\/ref.protocol>]<\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, header<\/decl.var.parameter.argument_label>: () -> AnyHeaderFooterConvertible<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { nil }<\/decl.var.parameter>, footer<\/decl.var.parameter.argument_label>: () -> AnyHeaderFooterConvertible<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { nil }<\/decl.var.parameter>) where<\/syntaxtype.keyword> IdentifierValue<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.constructor>", + "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><IdentifierValue<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: IdentifierValue<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, @ListableBuilder<\/ref.enum><any AnyItemConvertible<\/ref.protocol>><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> items<\/decl.var.parameter.argument_label>: () -> [AnyItemConvertible<\/ref.protocol>]<\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, header<\/decl.var.parameter.argument_label>: () -> AnyHeaderFooterConvertible<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { nil }<\/decl.var.parameter>, footer<\/decl.var.parameter.argument_label>: () -> AnyHeaderFooterConvertible<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { nil }<\/decl.var.parameter>) where<\/syntaxtype.keyword> IdentifierValue<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.constructor>", "key.kind" : "source.lang.swift.decl.function.method.instance", "key.length" : 544, "key.line" : 142, @@ -107183,7 +107231,7 @@ "key.usr" : "s:10ListableUI7SectionV_5items6header6footerACx_SayAA18AnyItemConvertible_pGyXEAA0g12HeaderFooterI0_pSgyXEAJyXEtcSHRzlufc15IdentifierValueL_xmfp" } ], - "key.typename" : " (Section.Type) -> (IdentifierValue, () -> [AnyItemConvertible], () -> AnyHeaderFooterConvertible?, () -> AnyHeaderFooterConvertible?) -> Section", + "key.typename" : " (Section.Type) -> (IdentifierValue, () -> [any AnyItemConvertible], () -> (any AnyHeaderFooterConvertible)?, () -> (any AnyHeaderFooterConvertible)?) -> Section", "key.typeusr" : "$s_5items6header6footer10ListableUI7SectionVx_SayAD18AnyItemConvertible_pGyXEAD0g12HeaderFooterI0_pSgyXEAJyXEtcSHRzluD", "key.usr" : "s:10ListableUI7SectionV_5items6header6footerACx_SayAA18AnyItemConvertible_pGyXEAA0g12HeaderFooterI0_pSgyXEAJyXEtcSHRzlufc" }, @@ -107408,7 +107456,7 @@ "key.substructure" : [ ], - "key.typename" : "(inout Section) -> (AnyItem) -> ()", + "key.typename" : "(inout Section) -> (any AnyItem) -> ()", "key.typeusr" : "$syy10ListableUI7AnyItem_pcD", "key.usr" : "s:10ListableUI7SectionV3addyyAA7AnyItem_pF" }, @@ -107460,7 +107508,7 @@ "key.substructure" : [ ], - "key.typename" : "(Section.Type) -> (inout Section, AnyItem) -> ()", + "key.typename" : "(Section.Type) -> (inout Section, any AnyItem) -> ()", "key.typeusr" : "$syy10ListableUI7SectionVz_AA7AnyItem_ptcD", "key.usr" : "s:10ListableUI7SectionV2peoiyyACz_AA7AnyItem_ptFZ" }, @@ -107652,7 +107700,7 @@ }, { "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public mutating func add(@ListableBuilder<\/Type><AnyItemConvertible<\/Type>> items: () -> [AnyItemConvertible<\/Type>])<\/Declaration>", + "key.annotated_decl" : "public mutating func add(@ListableBuilder<\/Type><any AnyItemConvertible<\/Type>> items: () -> [AnyItemConvertible<\/Type>])<\/Declaration>", "key.attributes" : [ { "key.attribute" : "source.decl.attribute.mutating", @@ -107671,21 +107719,21 @@ "key.decl_lang" : "source.lang.swift", "key.doc.column" : 26, "key.doc.comment" : "Adds the provided items with the provided result builder.\n\n```\nsection.add {\n MyContent(text: \"Person 1\")\n MyContent(text: \"Person 2\")\n}\n```", - "key.doc.declaration" : "public mutating func add(@ListableUI.ListableBuilder items: () -> [AnyItemConvertible])", + "key.doc.declaration" : "public mutating func add(@ListableUI.ListableBuilder items: () -> [AnyItemConvertible])", "key.doc.discussion" : [ { "CodeListing" : "" } ], "key.doc.file" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift", - "key.doc.full_as_xml" : "add(items:)<\/Name>s:10ListableUI7SectionV3add5itemsySayAA18AnyItemConvertible_pGyXE_tF<\/USR>public mutating func add(@ListableUI.ListableBuilder<ListableUI.AnyItemConvertible> items: () -> [AnyItemConvertible])<\/Declaration>Adds the provided items with the provided result builder.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>", + "key.doc.full_as_xml" : "add(items:)<\/Name>s:10ListableUI7SectionV3add5itemsySayAA18AnyItemConvertible_pGyXE_tF<\/USR>public mutating func add(@ListableUI.ListableBuilder<any ListableUI.AnyItemConvertible> items: () -> [AnyItemConvertible])<\/Declaration>Adds the provided items with the provided result builder.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>", "key.doc.line" : 234, "key.doc.name" : "add(items:)", "key.doc.type" : "Function", "key.doclength" : 206, "key.docoffset" : 7029, "key.filepath" : "\/Users\/k\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> add<\/decl.name>(@ListableBuilder<\/ref.enum><AnyItemConvertible<\/ref.protocol>><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> items<\/decl.var.parameter.argument_label>: () -> [AnyItemConvertible<\/ref.protocol>]<\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", + "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> add<\/decl.name>(@ListableBuilder<\/ref.enum><any AnyItemConvertible<\/ref.protocol>><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> items<\/decl.var.parameter.argument_label>: () -> [AnyItemConvertible<\/ref.protocol>]<\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", "key.kind" : "source.lang.swift.decl.function.method.instance", "key.length" : 156, "key.line" : 234, @@ -107706,7 +107754,7 @@ "key.substructure" : [ ], - "key.typename" : "(inout Section) -> (() -> [AnyItemConvertible]) -> ()", + "key.typename" : "(inout Section) -> (() -> [any AnyItemConvertible]) -> ()", "key.typeusr" : "$s5itemsySay10ListableUI18AnyItemConvertible_pGyXE_tcD", "key.usr" : "s:10ListableUI7SectionV3add5itemsySayAA18AnyItemConvertible_pGyXE_tF" }, @@ -107758,7 +107806,7 @@ "key.substructure" : [ ], - "key.typename" : "(Section.Type) -> (inout Section, [AnyItem]) -> ()", + "key.typename" : "(Section.Type) -> (inout Section, [any AnyItem]) -> ()", "key.typeusr" : "$syy10ListableUI7SectionVz_SayAA7AnyItem_pGtcD", "key.usr" : "s:10ListableUI7SectionV2peoiyyACz_SayAA7AnyItem_pGtFZ" }, @@ -108000,7 +108048,7 @@ "key.usr" : "s:10ListableUI7SectionV9itemsUpTo5limitSayAA7AnyItem_pGSi_tF3endL_Sivp" } ], - "key.typename" : "(Section) -> (Int) -> [AnyItem]", + "key.typename" : "(Section) -> (Int) -> [any AnyItem]", "key.typeusr" : "$s5limitSay10ListableUI7AnyItem_pGSi_tcD", "key.usr" : "s:10ListableUI7SectionV9itemsUpTo5limitSayAA7AnyItem_pGSi_tF" } @@ -108472,7 +108520,7 @@ "key.usr" : "s:10ListableUI19SectionLayoutsValueP14isHeaderStickySbSgvp" } ], - "key.typename" : "SectionLayoutsValue.Protocol", + "key.typename" : "SectionLayoutsValue.Type", "key.typeusr" : "$s10ListableUI19SectionLayoutsValue_pmD", "key.usr" : "s:10ListableUI19SectionLayoutsValueP" }, @@ -112471,7 +112519,7 @@ "key.bodyoffset" : 137, "key.column" : 12, "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.2.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIScrollView.h", + "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator17.5.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIScrollView.h", "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @_nonSendable(_assumed)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> class<\/syntaxtype.keyword> UIScrollView<\/decl.name> : UIView<\/ref.class>, NSCoding<\/ref.protocol>, UIFocusItemScrollableContainer<\/ref.protocol><\/decl.class>", "key.is_system" : true, "key.kind" : "source.lang.swift.decl.extension", @@ -113085,7 +113133,7 @@ "key.usr" : "s:10ListableUI13ViewAnimationO" }, { - "key.annotated_decl" : "@frozen struct Set<Element> where Element<\/Type> : Hashable<\/Type><\/Declaration>", + "key.annotated_decl" : "@frozen @_eagerMove struct Set<Element> where Element<\/Type> : Hashable<\/Type><\/Declaration>", "key.bodylength" : 642, "key.bodyoffset" : 2793, "key.decl_lang" : "source.lang.swift", @@ -113155,7 +113203,7 @@ "key.doc.full_as_xml" : "Set<\/Name>s:Sh<\/USR>@frozen struct Set<Element> where Element : Hashable<\/Declaration>An unordered collection of unique elements.<\/Para><\/Abstract>You use a set instead of an array when you need to test efficiently for membership and you aren’t concerned with the order of the elements in the collection, or when you need to ensure that each element appears only once in a collection.<\/Para>You can create a set with any element type that conforms to the Hashable<\/codeVoice> protocol. By default, most types in the standard library are hashable, including strings, numeric and Boolean types, enumeration cases without associated values, and even sets themselves.<\/Para>Swift makes it as easy to create a new set as to create a new array. Simply assign an array literal to a variable or constant with the Set<\/codeVoice> type specified.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Set Operations]]><\/rawHTML>Sets provide a suite of mathematical set operations. For example, you can efficiently test a set for membership of an element or check its intersection with another set:<\/Para>Use the contains(_:)<\/codeVoice> method to test whether a set contains a specific element.<\/Para><\/Item>Use the “equal to” operator (==<\/codeVoice>) to test whether two sets contain the same elements.<\/Para><\/Item>Use the isSubset(of:)<\/codeVoice> method to test whether a set contains all the elements of another set or sequence.<\/Para><\/Item>Use the isSuperset(of:)<\/codeVoice> method to test whether all elements of a set are contained in another set or sequence.<\/Para><\/Item>Use the isStrictSubset(of:)<\/codeVoice> and isStrictSuperset(of:)<\/codeVoice> methods to test whether a set is a subset or superset of, but not equal to, another set.<\/Para><\/Item>Use the isDisjoint(with:)<\/codeVoice> method to test whether a set has any elements in common with another set.<\/Para><\/Item><\/List-Bullet>You can also combine, exclude, or subtract the elements of two sets:<\/Para>Use the union(_:)<\/codeVoice> method to create a new set with the elements of a set and another set or sequence.<\/Para><\/Item>Use the intersection(_:)<\/codeVoice> method to create a new set with only the elements common to a set and another set or sequence.<\/Para><\/Item>Use the symmetricDifference(_:)<\/codeVoice> method to create a new set with the elements that are in either a set or another set or sequence, but not in both.<\/Para><\/Item>Use the subtracting(_:)<\/codeVoice> method to create a new set with the elements of a set that are not also in another set or sequence.<\/Para><\/Item><\/List-Bullet>You can modify a set in place by using these methods’ mutating counterparts: formUnion(_:)<\/codeVoice>, formIntersection(_:)<\/codeVoice>, formSymmetricDifference(_:)<\/codeVoice>, and subtract(_:)<\/codeVoice>.<\/Para>Set operations are not limited to use with other sets. Instead, you can perform set operations with another set, an array, or any other sequence type.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered>]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Sequence and Collection Operations]]><\/rawHTML>In addition to the Set<\/codeVoice> type’s set operations, you can use any nonmutating sequence or collection methods with a set.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can iterate through a set’s unordered elements with a for<\/codeVoice>-in<\/codeVoice> loop.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Many sequence and collection operations return an array or a type-erasing collection wrapper instead of a set. To restore efficient set operations, create a new set from the result.<\/Para><\/zCodeLineNumbered>]]><\/zCodeLineNumbered><\/zCodeLineNumbered>]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Bridging Between Set and NSSet]]><\/rawHTML>You can bridge between Set<\/codeVoice> and NSSet<\/codeVoice> using the as<\/codeVoice> operator. For bridging to be possible, the Element<\/codeVoice> type of a set must be a class, an @objc<\/codeVoice> protocol (a protocol imported from Objective-C or marked with the @objc<\/codeVoice> attribute), or a type that bridges to a Foundation type.<\/Para>Bridging from Set<\/codeVoice> to NSSet<\/codeVoice> always takes O(1) time and space. When the set’s Element<\/codeVoice> type is neither a class nor an @objc<\/codeVoice> protocol, any required bridging of elements occurs at the first access of each element, so the first operation that uses the contents of the set (for example, a membership test) can take O(n<\/emphasis>).<\/Para>Bridging from NSSet<\/codeVoice> to Set<\/codeVoice> first calls the copy(with:)<\/codeVoice> method (- copyWithZone:<\/codeVoice> in Objective-C) on the set to get an immutable copy and then performs additional Swift bookkeeping work that takes O(1) time. For instances of NSSet<\/codeVoice> that are already immutable, copy(with:)<\/codeVoice> returns the same set in constant time; otherwise, the copying performance is unspecified. The instances of NSSet<\/codeVoice> and Set<\/codeVoice> share buffer using the same copy-on-write optimization that is used when two instances of Set<\/codeVoice> share buffer.<\/Para><\/Discussion><\/CommentParts><\/Class>", "key.doc.name" : "Set", "key.doc.type" : "Class", - "key.fully_annotated_decl" : "@frozen<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> Set<\/decl.name><Element<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> Element<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", + "key.fully_annotated_decl" : "@frozen<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @_eagerMove<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> Set<\/decl.name><Element<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> Element<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", "key.groupname" : "Collection\/HashedCollections", "key.is_system" : true, "key.kind" : "source.lang.swift.decl.extension", diff --git a/docs/Listable/Structs/Behavior.html b/docs/Listable/Structs/Behavior.html index 1f2b8bce..026735aa 100644 --- a/docs/Listable/Structs/Behavior.html +++ b/docs/Listable/Structs/Behavior.html @@ -715,6 +715,33 @@

Behavior