From 5c7640d7ba063cd9edac749d62c080eeb5f77649 Mon Sep 17 00:00:00 2001
From: satabin The generic derivation for cell decoders also supports renaming and deriving instances for unary product types (case classes with one field):import fs2.data.json.jq.Compiler
val queryCompiler = Compiler[IO]
-// queryCompiler: Compiler[IO] = fs2.data.json.jq.internal.ESPJqCompiler@270ee63b
+// queryCompiler: Compiler[IO] = fs2.data.json.jq.internal.ESPJqCompiler@79b7579f
val queryPipe = queryCompiler.compile(query).unsafeRunSync()
// queryPipe: fs2.package.Pipe[IO, json.Token, json.Token] = <function1>
diff --git a/documentation/cbor-json/index.html b/documentation/cbor-json/index.html
index 3d9252fd..97d8c8da 100644
--- a/documentation/cbor-json/index.html
+++ b/documentation/cbor-json/index.html
@@ -264,7 +264,7 @@ implicit val stateDecoder = deriveCellDecoder[State]
-// stateDecoder: CellDecoder[State] = fs2.data.csv.generic.internal.DerivedCellDecoder$$anonfun$coproductDecoder$3@144eff47
+// stateDecoder: CellDecoder[State] = fs2.data.csv.generic.internal.DerivedCellDecoder$$anonfun$coproductDecoder$3@6b689340
// use stateDecoder to derive decoders for rows...or just test:
stateDecoder("On")
// res1: DecoderResult[State] = Right(value = On)
@@ -199,7 +199,7 @@
// same goes for the encoder
implicit val stateEncoder = deriveCellEncoder[State]
-// stateEncoder: CellEncoder[State] = fs2.data.csv.generic.internal.DerivedCellEncoder$$anonfun$coproductEncoder$3@4559aa3a
+// stateEncoder: CellEncoder[State] = fs2.data.csv.generic.internal.DerivedCellEncoder$$anonfun$coproductEncoder$3@272f65a1
stateEncoder(State.On)
// res3: String = "On"
// works as we have an implicit CellDecoder[String]
implicit val unknownDecoder = deriveCellDecoder[Advanced.Unknown]
-// unknownDecoder: CellDecoder[Advanced.Unknown] = fs2.data.csv.generic.internal.DerivedCellDecoder$$anonfun$unaryProductDecoder$3@1b42462c
+// unknownDecoder: CellDecoder[Advanced.Unknown] = fs2.data.csv.generic.internal.DerivedCellDecoder$$anonfun$unaryProductDecoder$3@7cbba1f1
implicit val advancedDecoder = deriveCellDecoder[Advanced]
-// advancedDecoder: CellDecoder[Advanced] = fs2.data.csv.generic.internal.DerivedCellDecoder$$anonfun$coproductDecoder$3@510dd9a7
+// advancedDecoder: CellDecoder[Advanced] = fs2.data.csv.generic.internal.DerivedCellDecoder$$anonfun$coproductDecoder$3@67dc3a1a
advancedDecoder("Active")
// res4: DecoderResult[Advanced] = Right(value = On)
@@ -223,9 +223,9 @@
// res5: DecoderResult[Advanced] = Right(value = Unknown(name = "Off"))
implicit val unknownEncoder = deriveCellEncoder[Advanced.Unknown]
-// unknownEncoder: CellEncoder[Advanced.Unknown] = fs2.data.csv.generic.internal.DerivedCellEncoder$$anonfun$unaryProductEncoder$3@32daa006
+// unknownEncoder: CellEncoder[Advanced.Unknown] = fs2.data.csv.generic.internal.DerivedCellEncoder$$anonfun$unaryProductEncoder$3@48014732
implicit val advancedEncoder = deriveCellEncoder[Advanced]
-// advancedEncoder: CellEncoder[Advanced] = fs2.data.csv.generic.internal.DerivedCellEncoder$$anonfun$coproductEncoder$3@3adad41d
+// advancedEncoder: CellEncoder[Advanced] = fs2.data.csv.generic.internal.DerivedCellEncoder$$anonfun$coproductEncoder$3@14df31fe
advancedEncoder(Advanced.On)
// res6: String = "Active"
@@ -269,7 +269,7 @@ import fs2.data.csv.generic.semiauto._
implicit val MyRowDecoder: CsvRowDecoder[MyRow, String] = deriveCsvRowDecoder[MyRow]
-// MyRowDecoder: CsvRowDecoder[MyRow, String] = fs2.data.csv.generic.internal.DerivedCsvRowDecoder$$anon$1@3051c57a
+// MyRowDecoder: CsvRowDecoder[MyRow, String] = fs2.data.csv.generic.internal.DerivedCsvRowDecoder$$anon$1@7cd8d21a
val decoded = stream.through(decodeUsingHeaders[MyRow]())
// decoded: Stream[[x]Fallible[x], MyRow] = Stream(..)
diff --git a/documentation/csv/index.html b/documentation/csv/index.html
index 5e6cc3e8..ca5e4ff8 100644
--- a/documentation/csv/index.html
+++ b/documentation/csv/index.html
@@ -200,9 +200,9 @@
val
textStream = Stream.emit(input).covary[Fallible]
// textStream: Stream[Fallible, String] = Stream(..)
implicit val myRowDecoder: CsvRowDecoder[MyRow, String] = deriveCsvRowDecoder
-// myRowDecoder: CsvRowDecoder[MyRow, String] = fs2.data.csv.generic.internal.DerivedCsvRowDecoder$$anon$1@5de0d4a6
+// myRowDecoder: CsvRowDecoder[MyRow, String] = fs2.data.csv.generic.internal.DerivedCsvRowDecoder$$anon$1@198e96d3
implicit val myRowEncoder: CsvRowEncoder[MyRow, String] = deriveCsvRowEncoder
-// myRowEncoder: CsvRowEncoder[MyRow, String] = fs2.data.csv.generic.internal.DerivedCsvRowEncoder$$anonfun$productWriter$2@ad8a496
+// myRowEncoder: CsvRowEncoder[MyRow, String] = fs2.data.csv.generic.internal.DerivedCsvRowEncoder$$anonfun$productWriter$2@47c74343
// decodeUsingHeaders can take a `Char` indicating the separator to use
// for example `decodeUsingHeaders[MyRow](';') for a semi-colon separated csv
@@ -453,7 +453,7 @@ implicit
val parseableMyHeaders: ParseableHeader[MyHeaders] = ParseableHeader.instance[MyHeaders] { name =>
MyHeaders.withNameInsensitiveOption(name).toRight(new HeaderError(s"Unknown header $name"))
}
-// parseableMyHeaders: ParseableHeader[MyHeaders] = fs2.data.csv.ParseableHeader$$$Lambda$14408/0x00000008038bdc40@5c49fdaa
+// parseableMyHeaders: ParseableHeader[MyHeaders] = fs2.data.csv.ParseableHeader$$$Lambda$13144/0x00000008035a3c40@16f07a81
val withMyHeaders = stream.through(lowlevel.headers[Fallible, MyHeaders])
// withMyHeaders: Stream[[x]Fallible[x], CsvRow[MyHeaders]] = Stream(..)
@@ -559,10 +559,10 @@ For
CellEncoder
, it is even easier to define your own as encoding can't fail, so basically it's just a function A => String
. The easiest ways to roll your own are using Scala's single abstract method sugar:
case class Wrapper(content: String)
implicit val wrapperCellEncoder: CellEncoder[Wrapper] = (w: Wrapper) => w.content
-// wrapperCellEncoder: CellEncoder[Wrapper] = repl.MdocSession$MdocApp$$anonfun$9@7d74761
+// wrapperCellEncoder: CellEncoder[Wrapper] = repl.MdocSession$MdocApp$$anonfun$9@7b254e82
or using contramap
on an existing encoder:
implicit val wrapperCellEncoder2: CellEncoder[Wrapper] = CellEncoder[String].contramap(_.content)
-// wrapperCellEncoder2: CellEncoder[Wrapper] = fs2.data.csv.CellEncoder$$anonfun$contramap$2@48e4af19
+// wrapperCellEncoder2: CellEncoder[Wrapper] = fs2.data.csv.CellEncoder$$anonfun$contramap$2@605d7fe
RowDecoder
& RowEncoder
RowDecoder
s can be used to decode an entire CSV row based on field positions. For instance if you want to decode the CSV data into shapeless HList
:
+Pt8hf?)b zso{N&@blxa|5pU{*_p>u79ke6i-AUf_USY+r!LJgki;CEmmj|`Yrxc7|1g$8sJ`|f zEEX$AIcN-bsfC%gyj2ndG<&V07^|_X80rj7HCj^@Z{&Q9((JEqvXJvLTaeyRQ(#J$ zG(+^ivG u|4dg?Yy)K;MZa#o*lpmKLp$Lj6NE-zMQEd zB^C!jYY~Hx_%uwrzPtu<({o3Lu5ZELe~dv@S}&G70MIToMNP9HfH$|+&p|Cm<%t$A z0L6>EDsSzP!|EYt?(qd2BXDmbk3VtanwkFl(|g{3z2ZHDu+8R(4acT_^(j0BnOh0E znWLp8_UJxpzl`m2gxqmu^~;8y7%lBBJUz)_)ivxsH|iS-_vmN?V&j4>CRYoihg2c$ zf^vVKf5=fyjqlkq2QB6d t=-}7-rn}k#~uFfaA&wLhvU7S zuXZ0#b`Ip>u5( mo;-&xU)v&_q(;nce*tP=|P_D#Pe#Wp-20A zg*Q8CJlSc>i+#P?gPoWPGBvY9m1 sVil451qx-KphK)MT&(umv~9@&`?ZkBRWH8vY!kY);LTpNdUP?K-t zV>;V`9k+qNU#>@+J~s=DBT4M1z+xY`RyUJFNaJ_snH;NWk)hQv99}UWOa$8jHhpRF zcKaBk%)Ex9!ine1xr&Z4D3(+F2$c2>zlbQc72Yv7v^NjzN`dI+cm#2S`3r;v=#3P1 zcM$+rBS8X+) nmDdOIYUNo z7piOA3r4#nR`n4Lg#?kPk2n v?a+K_@!*{B6hIrGH6K}u|FX^@Os0T?=v4RiDcPZ-KtEUm08$ih}b zG;AzI ^u>24?CZT zMt*nH$d7P2YJ0|6AB==)QuvPght3$KAK5Z=D}z8FjW~N2zGK@UID9AqV#5HdrfKQH zdh&U&z%^sjxH&~6&r@ RYRyvGatF$Sewo*yrqp2BSrs!C+ zQ4^j>!6r%pEzZS3>@y >za$c7|_J^KJIq{_TsMU7oyCIp*F K@p~0 z+QVwkuVQgbHWIaN5>V_!6O2e~2*;Wgb|7PU)YF 6*Q`rV#rNO6j^NJ;eER<6`BR2(Kwirm z8CU7dz>1ysOZAiv0!^W148@dUW}-J5%9Rc4o0=Hdm1I1D#8|VT*cVd#<*J*zLOO1u z-7Nh8U*sJ3LWTb(c;^_9nGPRc+*H+AeXQ>^;j%g0w0DT &jOj-kWdTXmGYdT6B@md;=0-57II` IO95D@xU8l#snE6XaG#& z`#&k(c)rH+Af%ji&fR3k7~7t@G)FNK7_*SKWc4MK D *%huql$2 c-uBhBOp)uF%DKvLcYKABzH?gcITwj}C5)$_k(MLtGQ3uD zlk#8(xEQ(MdqnOG|9SN`&ColcbHQT9ZMVdH86fo5WKZ{iIs$ePhV`%1Jo-m5>~UA> z3g=<2n^Xl#0QjZsP-R+~X7?1E)kC1TZO0~a?fLmE&+~mBk{dhDd;mQvPEvyU9x!S| z6M9Y7*QLprxHANC-JY}>9nJ8j+1C0L<)-n^wUr x)G*(>cOom#W>BT%=md=;n AI*?3cf9W1T9y=!wjZX#D_$JX~f+>Xr;E^IQfM+VPT zv87^z?}0sFR?GRq4ykoyZtpln4<5Luu=-}d>}{s(boIq*lR2;%E-mDqTS>0}pc`9J z0{IN(MMGXPFWwv1oN4S1mg^QlGt+}xmxgzp#P4m=%-B>CT|Y>W)_oDCPw{eJFCL#_ z3b(TTA^?W@oNfMfqY*!a<16+*8@M+?)`*)g%w5c)Ot=x)959#`W4fk^$9!mWc?goq z176T(elQ@gh)7(U+go}?5a&)(Jt Xcc_B_H%&>*i#1{$pr-&nBlB_a7f){Zp(L50-2Xo3|~n3v*RUB6fm zi`Vt|!!3A#=)Rv|pdagTg&$bDaZNnQnZ%Q?1%#p2scp)CUo z%5^Urz`-w Fyoo`g@GDy=fr z8Fl>MID^^g3|#nonc>f%y^)x{K2w-nWcD3ApH|gekG8kd*;TBkTrf Hsm2GC&jzl%4(DQ7mPIPm7HR6ZlpY^Zup8uXvdU z9>Axp;B&~%Xy;SpPnC97E^qqjm{>B?e*MSa@0tk{>|AWdT90uM&P!4^&vZ1Z4QF~7 z=OEZVf8Su@bl1*H!^JamTT8kg&cMQHuA23sz}I&d()x0qYEOjs{03c!Y%R8*=;y_# zRke?fpbz@p_eq$i0nQD6jx4~uJJ@ZZ9$M7q2MHLhyOQ6h>-YiAyMAyXK(@cLyN=I5 zi~;oEqF?~-@bTkyw3~b8 HbXt*i2fSau(;wHH`piv&Kd!m*~v m6k-_e@86+z9uoexl9#&z_z>IUoyVUpKK&o98(EC`Qvd(~n=bVL literal 0 HcmV?d00001 diff --git a/pagefind/fragment/en_7c1e776.pf_fragment b/pagefind/fragment/en_7c1e776.pf_fragment new file mode 100644 index 0000000000000000000000000000000000000000..99c033af69a3fbdc5f863af1c338ea5ff35106fa GIT binary patch literal 2884 zcmV-K3%m3miwFP!00002|IJz5ZrjKeewBf4DgzX4$@$r6o1*SEX&r1f*>$=%iV=*+ zkvI-T(j3yV;27u=^sX<^i{9^b(LPf83jNNR8U9F?lWnlTB8Wi^=lsrhe&(={OSRBh z{4S2-n?YTsgX!Qf&ZByzvPxDu&kipP{kc3G1cNBgDy(DA$N&68eEiqn#f!67--+*Q zRcd8I@iLF=R87U3M2Ur&jAB{I5z&hkzY#^5U+GvGA%&?*C09CI3cV^))yNb10&g!a zN2z|V#3fj7L@Kjo4NXIE)*w#Pd~L)cFNM0UN*PteMrN_VkIZ15`Lb@Lg3wt{AnlA* zl*$qkub`?l2_%Q&v=Wib#9WEms70NMb)qt{$!oEeStY96%j*jhd6sS SvHx z)K#lNC_euCZ|oLcvQ{mWtm;w;SY#@lreI#ck?e_-l`%
DvgcPwl z;vK}0f~0qpuauBcnHzAV=Xt#})`r@U;n)CIU$cBZu+vPKI!d5>B#jD0oQo{4M52tw zX($o|r(r`5F*ut)Y7^yUEa3S+>FUq*Tnvp;BGuV@A>p8eNDA@+Jr+2!gHU{{s^1vW zmKPT}onCW3)=|=s)6}&j{X#-SUeZ}qCRB@simLEzlSQYmdT-1Ij=BzkhVY$#0o3(> zu=fdqSiX{}llN4-9nilU@c~Z@t b}$u3LAx-ag|~xBnd ~w!=d!Xe!RI3R_!&c(o<5UD*=ZzSxq97fveMWRVRSXZ#SVm9B;? z{~)ZAk{~mz^7kq;Gwa5{sdauptStG|QO{;4=XMt!0`Z3E&KustFgyU3fBHkM)0kt) zf|(*y0m~Bqjk;1L)LP4pAp}Jrtds}c6sQC(W5LFO#U}kmet|M|ROO`!09*~^xq!T^ zHF$vWJO_{{{E(yOswA9$O_4{dWD4 ndS}7nk-``E`RoENNu1vdB{jITV>cy~ZAE zjAPKM)NlyJbD&;BL77DemDVsQi11(-m!;g06_wN(amX{otW9nLvE4iaBKBMZzhqz} zQ_L>_cVkVkps>k?+*6k&QRB>O1X7u=92c=x?5A}JCr$5$|HY+?fORR0LdD;+@1Ken zm#?jT3KCU0w78myn;s}b`xx{9X%~-Y=i*kJTRH|*SHe_0W4^OD0OFdGSOAd(s2}t) zsfM)Q+VfPLlqLTzO4OulES$zLS67>$*=4Z$tu~hK)%@a~{j6MX|FE?v5YOppn8}sm z;PfvJ4w!h@4?bQy1!@Q~!-Y=q2(r6)U^iIkEaM$sBlgQZf8KPV#tt-m ?+duP9_tp7=nqKWIwL-e}r~y;PI;QsY2)>Cks^`DJ(`?_FA)y}109L8uF#FT&2< zkU`#hlibxIDX~-;XJFf$EPRrtPD6@nor?nafg{k4Mam#0pLDQcH6(QKE}w@D5)~yT zZY-Ll#Yu>OVC$+aC5$Ipv^1194TH+He{n!>vkslj0MrOE1^ODoHzeoO4s^9^N(8lv zJq5X}*r;*ocrK|!%B`SA bkcq?i6*GvbbYh-0h=qTgDFc7Ov1#ju<1M zhrQL-P*wK*q+3E8iD*T(Anz~>7e{VGU^A%4^G;z6U7n#PH=Mc1d^ qb}Gkoc}+ug+GC zYv5Z0a4*DVL4Qhj7V=5edDka3A5ZBI`cD2e<%j96MJCmey4xPcX%mc86`cV-cm?1B zoX_(butl33rResq)B(e|E{gV@x^CX(KhFtW5zYmTTf51F&Cs1RI#;+p*w%5;+8aPG z3KLq`qhTYu`~H)n(ae_JEWXDzUHJ;Hy1IqpJGHd;Xy64*Z3bky&;`u^9qt!{qlxBH zfeC4aE4+zXSQCI6lxSCO?}iB7Pui&X%-E!Kuyf8fJCPl>d+uz{I{WXl?77QY?w(^5 zGCM99T%Ou%NTJcv4L=+Rvsumal**$~g=8ZGo`m?DNhf8u*-H95L}ufIFY1Xd q;cRkl>ltg+=;2LJDTf(2uF$mdWC6E1e~C$z j2OEDYw%3e}=Mg>y}44kyPX;>|!73|9u`Z(jE=(w(s#rMeFZ7v-EUAxx{ zjCP!4$3auRNJzRauxH0~g_t)#;kgjG = 8Z8+yk8K7}OY2(w#aM{HI!+YQthsLbI zL>CO_4h+8t3NW2?JuTn2@46(=Rj1phnZWm47`0M2pQw!+tofn=NB_n6^WjPEiBpkt znN3o2 =h2k$GoH+G zmw;(@fGZ=<4Qf-v8xBn#Zra@}a=;NOD(A_9(<%TI@C^X8rJr#Y(olJ@Q}9G>>ypnY z0!WQHY6p2`YXhI|Yh?D>b2r=cBhJvyC9G@s{*9@H|K;YUJb7)lOz+(Bba(c_6Os%w z{by&dUo_;ue|!{89zA}@DY4b_X)7Rfi$m7^AgnVZ7wU&PBUwWp19-BjHOh~7dzOLa zZx^_U(ix6_=RMg>hCPb|;pO37j^)%|-b0kds@e=OhPX=ufct1?%srzwH=jM(9`i&y z_<2N=|A*+9iRh0TAmOXl8e#S>LeGm2TjTMA2f@JIBnQ)*+hDL#mBiBkSIAW1(^vPC z7pV0LW0!X_rLSTyF)_=;H;7^62mcQ1NmUhQdU&W;%MhQMXs8tG{BT9vN0Hrrcy*YU z%W#=#l^pgyp1qrd zB$w98)GozcN>N=uMqi+B(9cEtNO^|-W{0Fm%L?2gy+aU-+}-&<^P5?g@!b&&}vpotcXRaEF(C4Rg(3oK&s>0kf&y}p@8 zg<7jZ*tM$GT5V!+1xYu`s7e+>mJlS tU3(r?Qk-S-H zvT9 ^sd3yoU6Wl?NTgGg_0l>x0T z=~+;qn5Q-+>_KiRxx@?hLMmPH`LR=cEVF67L{`Hf2!hHiC{teQ!cEw&A7QaB$n-)w zM{-hLL8h&0Rc%>-WHtUf-jy<$s^YRz-fx4KI%9Y%uwp5da&_T5VSywni3VN^=D}Wa z^3zp7X|{<^=LgwFITP}j; zu7z$=0 zsX{qlwz2r3CNl&Pr?QEdHORfL!dT;wCMYAwq(x4S&LN?oe~=D|tO+ r|{ zK~V!W(+-NL)C1=R=GYb~979s@ZXQD3uw$j0kRTw=XSVhTs%<2gY{$LL^j$d-8w&J( z-fJ6^Ikxifjd!uibCvq|?Db=-wQ(|6F`2JZ1SGyGY=U4mN5L-!KT