1 /*
2  *  Make.org Core API
3  *  Copyright (C) 2018 Make.org
4  *
5  * This program is free software: you can redistribute it and/or modify
6  *  it under the terms of the GNU Affero General Public License as
7  *  published by the Free Software Foundation, either version 3 of the
8  *  License, or (at your option) any later version.
9  *
10  *  This program is distributed in the hope that it will be useful,
11  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  *  GNU Affero General Public License for more details.
14  *
15  *  You should have received a copy of the GNU Affero General Public License
16  *  along with this program.  If not, see <https://www.gnu.org/licenses/>.
17  *
18  */
19 
20 package org.make.core.feature
21 
22 import enumeratum.values.{StringEnum, StringEnumEntry}
23 import io.circe.{Decoder, Encoder, Json}
24 import io.circe.generic.semiauto.{deriveDecoder, deriveEncoder}
25 import org.make.core.StringValue
26 import org.make.core.technical.enumeratum.FallbackingCirceEnum.FallbackingStringCirceEnum
27 
28 final case class Feature(featureId: FeatureId, name: String, slug: FeatureSlug)
29 
30 sealed abstract class FeatureSlug(val value: String) extends StringEnumEntry with Product with Serializable
31 
32 object FeatureSlug extends StringEnum[FeatureSlug] with FallbackingStringCirceEnum[FeatureSlug] {
33   case object SequenceCustomDataSegment extends FeatureSlug("sequence-custom-data-segment")
34   case object ConsultationDepartmentCompulsory extends FeatureSlug("consultation-department-compulsory")
35   case object DisplayIntroCardWidget extends FeatureSlug("display-intro-card-widget")
36   override def default(value: String): FeatureSlug = OtherFeatureSlug(value)
37   override val values: IndexedSeq[FeatureSlug] = findValues
38 }
39 
40 final case class OtherFeatureSlug(override val value: String) extends FeatureSlug(value)
41 
42 object Feature {
43   implicit val encoder: Encoder[Feature] = deriveEncoder[Feature]
44   implicit val decoder: Decoder[Feature] = deriveDecoder[Feature]
45 }
46 
47 final case class FeatureId(value: String) extends StringValue
48 
49 object FeatureId {
50   implicit lazy val featureIdEncoder: Encoder[FeatureId] =
51     (a: FeatureId) => Json.fromString(a.value)
52   implicit lazy val featureIdDecoder: Decoder[FeatureId] =
53     Decoder.decodeString.map(FeatureId(_))
54 
55 }
Line Stmt Id Pos Tree Symbol Tests Code
36 3522 1684 - 1707 Apply org.make.core.feature.OtherFeatureSlug.apply org.make.api.question.questionapitest,org.make.api.feature.featureservicetest OtherFeatureSlug.apply(value)
43 2461 1921 - 1943 ApplyToImplicitArgs io.circe.generic.semiauto.deriveEncoder io.circe.generic.semiauto.deriveEncoder[org.make.core.feature.Feature]({ val inst$macro$16: io.circe.generic.encoding.DerivedAsObjectEncoder[org.make.core.feature.Feature] = { final class anon$lazy$macro$15 extends AnyRef with Serializable { def <init>(): anon$lazy$macro$15 = { anon$lazy$macro$15.super.<init>(); () }; <stable> <accessor> lazy val inst$macro$1: io.circe.generic.encoding.DerivedAsObjectEncoder[org.make.core.feature.Feature] = encoding.this.DerivedAsObjectEncoder.deriveEncoder[org.make.core.feature.Feature, shapeless.labelled.FieldType[Symbol @@ String("featureId"),org.make.core.feature.FeatureId] :: shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out](shapeless.this.LabelledGeneric.materializeProduct[org.make.core.feature.Feature, (Symbol @@ String("featureId")) :: (Symbol @@ String("name")) :: (Symbol @@ String("slug")) :: shapeless.HNil, org.make.core.feature.FeatureId :: String :: org.make.core.feature.FeatureSlug :: shapeless.HNil, shapeless.labelled.FieldType[Symbol @@ String("featureId"),org.make.core.feature.FeatureId] :: shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out](DefaultSymbolicLabelling.instance[org.make.core.feature.Feature, (Symbol @@ String("featureId")) :: (Symbol @@ String("name")) :: (Symbol @@ String("slug")) :: shapeless.HNil](::.apply[Symbol @@ String("featureId"), (Symbol @@ String("name")) :: (Symbol @@ String("slug")) :: shapeless.HNil.type](scala.Symbol.apply("featureId").asInstanceOf[Symbol @@ String("featureId")], ::.apply[Symbol @@ String("name"), (Symbol @@ String("slug")) :: shapeless.HNil.type](scala.Symbol.apply("name").asInstanceOf[Symbol @@ String("name")], ::.apply[Symbol @@ String("slug"), shapeless.HNil.type](scala.Symbol.apply("slug").asInstanceOf[Symbol @@ String("slug")], HNil)))), Generic.instance[org.make.core.feature.Feature, org.make.core.feature.FeatureId :: String :: org.make.core.feature.FeatureSlug :: shapeless.HNil](((x0$3: org.make.core.feature.Feature) => x0$3 match { case (featureId: org.make.core.feature.FeatureId, name: String, slug: org.make.core.feature.FeatureSlug): org.make.core.feature.Feature((featureId$macro$11 @ _), (name$macro$12 @ _), (slug$macro$13 @ _)) => ::.apply[org.make.core.feature.FeatureId, String :: org.make.core.feature.FeatureSlug :: shapeless.HNil.type](featureId$macro$11, ::.apply[String, org.make.core.feature.FeatureSlug :: shapeless.HNil.type](name$macro$12, ::.apply[org.make.core.feature.FeatureSlug, shapeless.HNil.type](slug$macro$13, HNil))).asInstanceOf[org.make.core.feature.FeatureId :: String :: org.make.core.feature.FeatureSlug :: shapeless.HNil] }), ((x0$4: org.make.core.feature.FeatureId :: String :: org.make.core.feature.FeatureSlug :: shapeless.HNil) => x0$4 match { case (head: org.make.core.feature.FeatureId, tail: String :: org.make.core.feature.FeatureSlug :: shapeless.HNil): org.make.core.feature.FeatureId :: String :: org.make.core.feature.FeatureSlug :: shapeless.HNil((featureId$macro$8 @ _), (head: String, tail: org.make.core.feature.FeatureSlug :: shapeless.HNil): String :: org.make.core.feature.FeatureSlug :: shapeless.HNil((name$macro$9 @ _), (head: org.make.core.feature.FeatureSlug, tail: shapeless.HNil): org.make.core.feature.FeatureSlug :: shapeless.HNil((slug$macro$10 @ _), HNil))) => feature.this.Feature.apply(featureId$macro$8, name$macro$9, slug$macro$10) })), hlist.this.ZipWithKeys.hconsZipWithKeys[Symbol @@ String("featureId"), org.make.core.feature.FeatureId, (Symbol @@ String("name")) :: (Symbol @@ String("slug")) :: shapeless.HNil, String :: org.make.core.feature.FeatureSlug :: shapeless.HNil, shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out](hlist.this.ZipWithKeys.hconsZipWithKeys[Symbol @@ String("name"), String, (Symbol @@ String("slug")) :: shapeless.HNil, org.make.core.feature.FeatureSlug :: shapeless.HNil, shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out](hlist.this.ZipWithKeys.hconsZipWithKeys[Symbol @@ String("slug"), org.make.core.feature.FeatureSlug, shapeless.HNil, shapeless.HNil, shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out](hlist.this.ZipWithKeys.hnilZipWithKeys, Witness.mkWitness[Symbol with shapeless.tag.Tagged[String("slug")]](scala.Symbol.apply("slug").asInstanceOf[Symbol @@ String("slug")].asInstanceOf[Symbol with shapeless.tag.Tagged[String("slug")]])), Witness.mkWitness[Symbol with shapeless.tag.Tagged[String("name")]](scala.Symbol.apply("name").asInstanceOf[Symbol @@ String("name")].asInstanceOf[Symbol with shapeless.tag.Tagged[String("name")]])), Witness.mkWitness[Symbol with shapeless.tag.Tagged[String("featureId")]](scala.Symbol.apply("featureId").asInstanceOf[Symbol @@ String("featureId")].asInstanceOf[Symbol with shapeless.tag.Tagged[String("featureId")]])), scala.this.<:<.refl[shapeless.labelled.FieldType[Symbol @@ String("featureId"),org.make.core.feature.FeatureId] :: shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out]), shapeless.Lazy.apply[io.circe.generic.encoding.ReprAsObjectEncoder[shapeless.labelled.FieldType[Symbol @@ String("featureId"),org.make.core.feature.FeatureId] :: shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out]](anon$lazy$macro$15.this.inst$macro$14)).asInstanceOf[io.circe.generic.encoding.DerivedAsObjectEncoder[org.make.core.feature.Feature]]; <stable> <accessor> lazy val inst$macro$14: io.circe.generic.encoding.ReprAsObjectEncoder[shapeless.labelled.FieldType[Symbol @@ String("featureId"),org.make.core.feature.FeatureId] :: shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out] = ({ final class $anon extends io.circe.generic.encoding.ReprAsObjectEncoder[shapeless.labelled.FieldType[Symbol @@ String("featureId"),org.make.core.feature.FeatureId] :: shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out] { def <init>(): <$anon: io.circe.generic.encoding.ReprAsObjectEncoder[shapeless.labelled.FieldType[Symbol @@ String("featureId"),org.make.core.feature.FeatureId] :: shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out]> = { $anon.super.<init>(); () }; private[this] val circeGenericEncoderForfeatureId: io.circe.Encoder[org.make.core.feature.FeatureId] = feature.this.FeatureId.featureIdEncoder; private[this] val circeGenericEncoderForname: io.circe.Encoder[String] = circe.this.Encoder.encodeString; private[this] val circeGenericEncoderForslug: io.circe.Encoder[org.make.core.feature.FeatureSlug] = feature.this.FeatureSlug.encoder(circe.this.Encoder.encodeString); final def encodeObject(a: shapeless.labelled.FieldType[Symbol @@ String("featureId"),org.make.core.feature.FeatureId] :: shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out): io.circe.JsonObject = a match { case (head: shapeless.labelled.FieldType[Symbol @@ String("featureId"),org.make.core.feature.FeatureId], tail: shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out): shapeless.labelled.FieldType[Symbol @@ String("featureId"),org.make.core.feature.FeatureId] :: shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out((circeGenericHListBindingForfeatureId @ _), (head: shapeless.labelled.FieldType[Symbol @@ String("name"),String], tail: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out): shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out((circeGenericHListBindingForname @ _), (head: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug], tail: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out): shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out((circeGenericHListBindingForslug @ _), shapeless.HNil))) => io.circe.JsonObject.fromIterable(scala.collection.immutable.Vector.apply[(String, io.circe.Json)](scala.Tuple2.apply[String, io.circe.Json]("featureId", $anon.this.circeGenericEncoderForfeatureId.apply(circeGenericHListBindingForfeatureId)), scala.Tuple2.apply[String, io.circe.Json]("name", $anon.this.circeGenericEncoderForname.apply(circeGenericHListBindingForname)), scala.Tuple2.apply[String, io.circe.Json]("slug", $anon.this.circeGenericEncoderForslug.apply(circeGenericHListBindingForslug)))) } }; new $anon() }: io.circe.generic.encoding.ReprAsObjectEncoder[shapeless.labelled.FieldType[Symbol @@ String("featureId"),org.make.core.feature.FeatureId] :: shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out]).asInstanceOf[io.circe.generic.encoding.ReprAsObjectEncoder[shapeless.labelled.FieldType[Symbol @@ String("featureId"),org.make.core.feature.FeatureId] :: shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out]] }; new anon$lazy$macro$15().inst$macro$1 }; shapeless.Lazy.apply[io.circe.generic.encoding.DerivedAsObjectEncoder[org.make.core.feature.Feature]](inst$macro$16) })
44 516 1987 - 2009 ApplyToImplicitArgs io.circe.generic.semiauto.deriveDecoder io.circe.generic.semiauto.deriveDecoder[org.make.core.feature.Feature]({ val inst$macro$32: io.circe.generic.decoding.DerivedDecoder[org.make.core.feature.Feature] = { final class anon$lazy$macro$31 extends AnyRef with Serializable { def <init>(): anon$lazy$macro$31 = { anon$lazy$macro$31.super.<init>(); () }; <stable> <accessor> lazy val inst$macro$17: io.circe.generic.decoding.DerivedDecoder[org.make.core.feature.Feature] = decoding.this.DerivedDecoder.deriveDecoder[org.make.core.feature.Feature, shapeless.labelled.FieldType[Symbol @@ String("featureId"),org.make.core.feature.FeatureId] :: shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out](shapeless.this.LabelledGeneric.materializeProduct[org.make.core.feature.Feature, (Symbol @@ String("featureId")) :: (Symbol @@ String("name")) :: (Symbol @@ String("slug")) :: shapeless.HNil, org.make.core.feature.FeatureId :: String :: org.make.core.feature.FeatureSlug :: shapeless.HNil, shapeless.labelled.FieldType[Symbol @@ String("featureId"),org.make.core.feature.FeatureId] :: shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out](DefaultSymbolicLabelling.instance[org.make.core.feature.Feature, (Symbol @@ String("featureId")) :: (Symbol @@ String("name")) :: (Symbol @@ String("slug")) :: shapeless.HNil](::.apply[Symbol @@ String("featureId"), (Symbol @@ String("name")) :: (Symbol @@ String("slug")) :: shapeless.HNil.type](scala.Symbol.apply("featureId").asInstanceOf[Symbol @@ String("featureId")], ::.apply[Symbol @@ String("name"), (Symbol @@ String("slug")) :: shapeless.HNil.type](scala.Symbol.apply("name").asInstanceOf[Symbol @@ String("name")], ::.apply[Symbol @@ String("slug"), shapeless.HNil.type](scala.Symbol.apply("slug").asInstanceOf[Symbol @@ String("slug")], HNil)))), Generic.instance[org.make.core.feature.Feature, org.make.core.feature.FeatureId :: String :: org.make.core.feature.FeatureSlug :: shapeless.HNil](((x0$7: org.make.core.feature.Feature) => x0$7 match { case (featureId: org.make.core.feature.FeatureId, name: String, slug: org.make.core.feature.FeatureSlug): org.make.core.feature.Feature((featureId$macro$27 @ _), (name$macro$28 @ _), (slug$macro$29 @ _)) => ::.apply[org.make.core.feature.FeatureId, String :: org.make.core.feature.FeatureSlug :: shapeless.HNil.type](featureId$macro$27, ::.apply[String, org.make.core.feature.FeatureSlug :: shapeless.HNil.type](name$macro$28, ::.apply[org.make.core.feature.FeatureSlug, shapeless.HNil.type](slug$macro$29, HNil))).asInstanceOf[org.make.core.feature.FeatureId :: String :: org.make.core.feature.FeatureSlug :: shapeless.HNil] }), ((x0$8: org.make.core.feature.FeatureId :: String :: org.make.core.feature.FeatureSlug :: shapeless.HNil) => x0$8 match { case (head: org.make.core.feature.FeatureId, tail: String :: org.make.core.feature.FeatureSlug :: shapeless.HNil): org.make.core.feature.FeatureId :: String :: org.make.core.feature.FeatureSlug :: shapeless.HNil((featureId$macro$24 @ _), (head: String, tail: org.make.core.feature.FeatureSlug :: shapeless.HNil): String :: org.make.core.feature.FeatureSlug :: shapeless.HNil((name$macro$25 @ _), (head: org.make.core.feature.FeatureSlug, tail: shapeless.HNil): org.make.core.feature.FeatureSlug :: shapeless.HNil((slug$macro$26 @ _), HNil))) => feature.this.Feature.apply(featureId$macro$24, name$macro$25, slug$macro$26) })), hlist.this.ZipWithKeys.hconsZipWithKeys[Symbol @@ String("featureId"), org.make.core.feature.FeatureId, (Symbol @@ String("name")) :: (Symbol @@ String("slug")) :: shapeless.HNil, String :: org.make.core.feature.FeatureSlug :: shapeless.HNil, shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out](hlist.this.ZipWithKeys.hconsZipWithKeys[Symbol @@ String("name"), String, (Symbol @@ String("slug")) :: shapeless.HNil, org.make.core.feature.FeatureSlug :: shapeless.HNil, shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out](hlist.this.ZipWithKeys.hconsZipWithKeys[Symbol @@ String("slug"), org.make.core.feature.FeatureSlug, shapeless.HNil, shapeless.HNil, shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out](hlist.this.ZipWithKeys.hnilZipWithKeys, Witness.mkWitness[Symbol with shapeless.tag.Tagged[String("slug")]](scala.Symbol.apply("slug").asInstanceOf[Symbol @@ String("slug")].asInstanceOf[Symbol with shapeless.tag.Tagged[String("slug")]])), Witness.mkWitness[Symbol with shapeless.tag.Tagged[String("name")]](scala.Symbol.apply("name").asInstanceOf[Symbol @@ String("name")].asInstanceOf[Symbol with shapeless.tag.Tagged[String("name")]])), Witness.mkWitness[Symbol with shapeless.tag.Tagged[String("featureId")]](scala.Symbol.apply("featureId").asInstanceOf[Symbol @@ String("featureId")].asInstanceOf[Symbol with shapeless.tag.Tagged[String("featureId")]])), scala.this.<:<.refl[shapeless.labelled.FieldType[Symbol @@ String("featureId"),org.make.core.feature.FeatureId] :: shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out]), shapeless.Lazy.apply[io.circe.generic.decoding.ReprDecoder[shapeless.labelled.FieldType[Symbol @@ String("featureId"),org.make.core.feature.FeatureId] :: shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out]](anon$lazy$macro$31.this.inst$macro$30)).asInstanceOf[io.circe.generic.decoding.DerivedDecoder[org.make.core.feature.Feature]]; <stable> <accessor> lazy val inst$macro$30: io.circe.generic.decoding.ReprDecoder[shapeless.labelled.FieldType[Symbol @@ String("featureId"),org.make.core.feature.FeatureId] :: shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out] = ({ final class $anon extends io.circe.generic.decoding.ReprDecoder[shapeless.labelled.FieldType[Symbol @@ String("featureId"),org.make.core.feature.FeatureId] :: shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out] { def <init>(): <$anon: io.circe.generic.decoding.ReprDecoder[shapeless.labelled.FieldType[Symbol @@ String("featureId"),org.make.core.feature.FeatureId] :: shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out]> = { $anon.super.<init>(); () }; private[this] val circeGenericDecoderForfeatureId: io.circe.Decoder[org.make.core.feature.FeatureId] = feature.this.FeatureId.featureIdDecoder; private[this] val circeGenericDecoderForname: io.circe.Decoder[String] = circe.this.Decoder.decodeString; private[this] val circeGenericDecoderForslug: io.circe.Decoder[org.make.core.feature.FeatureSlug] = feature.this.FeatureSlug.decoder(circe.this.Decoder.decodeString); final def apply(c: io.circe.HCursor): io.circe.Decoder.Result[shapeless.labelled.FieldType[Symbol @@ String("featureId"),org.make.core.feature.FeatureId] :: shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out] = ReprDecoder.consResults[io.circe.Decoder.Result, Symbol @@ String("featureId"), org.make.core.feature.FeatureId, shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out]($anon.this.circeGenericDecoderForfeatureId.tryDecode(c.downField("featureId")), ReprDecoder.consResults[io.circe.Decoder.Result, Symbol @@ String("name"), String, shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out]($anon.this.circeGenericDecoderForname.tryDecode(c.downField("name")), ReprDecoder.consResults[io.circe.Decoder.Result, Symbol @@ String("slug"), org.make.core.feature.FeatureSlug, shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out]($anon.this.circeGenericDecoderForslug.tryDecode(c.downField("slug")), ReprDecoder.hnilResult)(io.circe.Decoder.resultInstance))(io.circe.Decoder.resultInstance))(io.circe.Decoder.resultInstance); final override def decodeAccumulating(c: io.circe.HCursor): io.circe.Decoder.AccumulatingResult[shapeless.labelled.FieldType[Symbol @@ String("featureId"),org.make.core.feature.FeatureId] :: shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out] = ReprDecoder.consResults[io.circe.Decoder.AccumulatingResult, Symbol @@ String("featureId"), org.make.core.feature.FeatureId, shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out]($anon.this.circeGenericDecoderForfeatureId.tryDecodeAccumulating(c.downField("featureId")), ReprDecoder.consResults[io.circe.Decoder.AccumulatingResult, Symbol @@ String("name"), String, shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out]($anon.this.circeGenericDecoderForname.tryDecodeAccumulating(c.downField("name")), ReprDecoder.consResults[io.circe.Decoder.AccumulatingResult, Symbol @@ String("slug"), org.make.core.feature.FeatureSlug, shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out]($anon.this.circeGenericDecoderForslug.tryDecodeAccumulating(c.downField("slug")), ReprDecoder.hnilResultAccumulating)(io.circe.Decoder.accumulatingResultInstance))(io.circe.Decoder.accumulatingResultInstance))(io.circe.Decoder.accumulatingResultInstance) }; new $anon() }: io.circe.generic.decoding.ReprDecoder[shapeless.labelled.FieldType[Symbol @@ String("featureId"),org.make.core.feature.FeatureId] :: shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out]).asInstanceOf[io.circe.generic.decoding.ReprDecoder[shapeless.labelled.FieldType[Symbol @@ String("featureId"),org.make.core.feature.FeatureId] :: shapeless.labelled.FieldType[Symbol @@ String("name"),String] :: shapeless.labelled.FieldType[Symbol @@ String("slug"),org.make.core.feature.FeatureSlug] :: shapeless.ops.hlist.ZipWithKeys.hnilZipWithKeys.Out]] }; new anon$lazy$macro$31().inst$macro$17 }; shapeless.Lazy.apply[io.circe.generic.decoding.DerivedDecoder[org.make.core.feature.Feature]](inst$macro$32) })