From 61dd5fbff0f3f9a2b19bd213f6cfc4ea3b47b52b Mon Sep 17 00:00:00 2001 From: Nicolas Mariniello Date: Wed, 3 May 2023 15:19:13 +0200 Subject: [PATCH] Simplified computed properties calculations (#39) --- .../UserInterfaceState.xcuserstate | Bin 31268 -> 30838 bytes Sources/SunKit/Sun.swift | 8 ++++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.swiftpm/xcode/package.xcworkspace/xcuserdata/nmariniello.xcuserdatad/UserInterfaceState.xcuserstate b/.swiftpm/xcode/package.xcworkspace/xcuserdata/nmariniello.xcuserdatad/UserInterfaceState.xcuserstate index 41fec742b4dd2185961474b653a4b95096dcb28f..0e835e806313ec31adda91f1d87cb05c21fe6880 100644 GIT binary patch delta 14899 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�YPjkP)nwIF)pXTt)m+tl)z_*us%@&Hs^h9ts`aYsvD|Xs=KNOzQC9AWqdhb{2tlXx1F!ZSL`eCmHNtjJNg#-4);2yaPf4!UG}#A_F=F!~~=S zXao8O3<#(X7#v^-_#$9pz?6X50ZRi`2W$%XK44$K;ec}i*8<)Jf6B zw7|^3g21A{lEAV+T_7L$UEsCAM}bcR4KD&;2fhpZ5JU#q1UUrBgA_r2L7_pBK?yMIggR+8hf{KGGgL(zc2$~^yej$9woRBpkTSE?o+z5FP>Kv*F4GN72 z?HZa9st(nJmWGyxR)qEm?H4*Av_5oj=+MyVp=(0-g}%d^Gr2H9m^e%pCJ$4Dd4~Cf zwGWF9>l_vrmKc^6mKl~4mLH}L8x^)D%y2I3TG)-SCt)4ud;v?XbJU zo(}su9PAj}F{WeZj$Jz@bX?qVZO8Q;H+J08@ma@Doj@nD6Vs`vQ_oJlI`!_ysEDYJQPEMIqvE0xqq;|>Mroo9rBUTk`l!mNUQxZH`b5=6t&Q3d z^?S51Iy^cnx+Z#X^w{X}(UYR5Mo*8P89gU@Ui7Ny)zRysH%4!X{x*7B^p5BsqK`-4 zjD8bi9pfGo9upUn8Ka3QjVX_*i0K(q9WyAVF=lAYh?r3^C}vE|@|a&@&c)n|6~@YA zePaD$17kxBvEi{Xv0Y;0W0PW&V^d@Gu??|PVpqm~6T3C`+t_Wfr(&zV3dl~m8?p?ej-YY&VK03a0 zd|Z5DeE0b5_}ut{_@eldcx`-R{LJ{p@!!NBi9Zp4KmKLB;ZuTDffxAZn?FlCm&L&(<1c^+dD$zGFE3q`O zM`BfC@5H`|gAyAPhbE3l9GSQ*@nGV^BwD zX;jjTq}54#lTI3v&Lo{rx|DP!=~~i<aQ%9tZN=2z-QkSP1PNx2z`Xo)97Lb;k zR-HC6ZDHElwC!m}(tb_5n07hsS=#%wkLe(tN*ATOrF*1%rK{5Y(}U7O(>tffr6;C$ zPftzHNY6^oNiR*WOCOtVOkb4#WBO0&N7GNHpGiNT{#*LB^qc9o(%)y;WjJLhGrTi= zGXgS#Gr}_3XB1=%$e3x!Sf24q#<`4}nJ|;i7R$*JS>dc{}q#=Htv~nJ=tWWDtmoNb+0ohEv(vMSvJLv|N!in~zt6sr zBhK;23C`)5la-U7(&smt$l(Ri&XU?vi-8p-64&)rlIhAuh z=Tgp_i zId^I9irihfyL0#E9>_hMd(4n~JoiHGjoe$gcXJ=)KF)ob`!NsXQF&~hC{LWH$n(te z&hyO+$&1bFnwOB*EiW^#B(E$_m)9e&E^lC7L*C%L$$2~S4&?oocP;N`-tD}5c@OiR z6Lia*tp?9IGuv=kc z;q1b%3KtYEENm)VTDZJ$RpFY#J%#%V4;3CQJYIOJ@J!*A!aIfc3m+9eEqqbbRngC6(CREd2lcCAhQ(Rlzzj#t{ zOYza-CnXLg(Iw?2BTE*PY%BS>WKYTdl7l5DOD>iCR&urEddba_TP4p+UX{Ep`B3ty z6qLG^29$=Dwl9q=jV_HX?NS<7nq8_btthQ5?N!>hv|njm>A+IH)G(p6sdRbi52e4B z-YtDl`ndF2>C4hLrSG+rR-|>%I%#EExmKa|)Ou^fwUOFR+8AwTZJIVyo2|{$7HTWC zy|gvjTJ2!%80|RicpmWm6bgnu#UAV5REn delta 15266 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 0 && eveningGoldenHourEnd.timeIntervalSince(date) >= 0 + date >= eveningGoldenHourStart && date <= eveningGoldenHourEnd } /// Returns True if we are in morning golden hour range public var isMorningGoldenHour: Bool { - date.timeIntervalSince(morningBlueHourStart) >= 0 && morningBlueHourEnd.timeIntervalSince(date) >= 0 + date >= morningGoldenHourStart && date <= morningGoldenHourEnd } /// Returns True if we are in golden hour range @@ -185,12 +185,12 @@ public class Sun { /// Returns True if we are in evening blue hour range public var isEveningBlueHour: Bool { - date.timeIntervalSince(eveningBlueHourStart) >= 0 && eveningBlueHourEnd.timeIntervalSince(date) >= 0 + date >= eveningBlueHourStart && date <= eveningBlueHourEnd } /// Returns True if we are in morning blue hour range public var isMorningBlueHour: Bool { - date.timeIntervalSince(morningBlueHourStart) >= 0 && morningBlueHourEnd.timeIntervalSince(date) >= 0 + date >= morningBlueHourStart && date <= morningBlueHourEnd } /// Returns True if we are in blue hour range