Вопросы по теме 'shapeless'

Типовой класс для объединения несвязанных случаев отказа в моих дизъюнкциях Scalaz
У меня есть понимание дизъюнкций Scalaz. Левые типы на них могут быть разными типами классов ошибок из других библиотек. Например, один случай сбоя может быть связан с тайм-аутом HTTP, а другой может представлять собой ошибку синтаксического анализа...
96 просмотров
schedule 15.01.2024

Использование включения параметров универсального типа во вложенные полиморфные значения
Можно ли переписать следующий пример, используя только полиморфные функции без TypeTags? Пример состоит из класса A[T] , который имеет метод matches , возвращающий true при применении к экземпляру A с параметром того же типа T и false , если...
347 просмотров
schedule 07.05.2024

Shapeless HList map после сгибаRight
Уровень типа foldRight работает нормально (getLabelWithValues), а последующий уровень типа map (getValues) также работает нормально. Если я объединю оба в одном методе (getValuesFull), он больше не будет работать. Что недостает? Полный...
240 просмотров
schedule 29.03.2024

Типы Scala и компиляция
Я использовал бесформенные теги и написал код, похожий на этот: import shapeless.tag import shapeless.tag.@@ object Typeplay { trait StringTrait type MyString = String @@ StringTrait case class StringClass(mps: MyString) val stringClass...
142 просмотров
schedule 28.11.2022

Scala: копирование общего класса case в другой
У меня есть следующая настройка, где я хочу скопировать экземпляр baseData в экземпляр moreData : sealed trait baseData { def weight: Int def priority: Int } sealed trait moreData { def weight: Int def priority: Int def t: String...
954 просмотров
schedule 01.11.2023

Преобразование класса case в другой рекурсивно структурно идентичный класс case
Я пытаюсь использовать Shapeless для преобразования класса case следующим образом: case class A(int: Int, str: String) case class B(a: A, str: String) case class AnotherA(int: Int, str: String) case class AnotherB(a: AnotherA, str: String)...
220 просмотров
schedule 30.12.2023

Сумма двух HList одинакового размера во время компиляции?
Учитывая следующую попытку получения рекурсивной суммы двух HList , показанную ниже: (Пожалуйста, извините за Product в его названии.) package net import shapeless._ import shapeless.nat._ import shapeless.ops.nat.{Sum, Prod, Mod} trait...
85 просмотров
schedule 20.09.2022

Переопределение параметра Shapeless HList
У меня есть абстрактный класс с методом, который получает HList в качестве параметра ( A ). Однако в подклассах я хотел бы ограничить точные типы этого HList ( B ) Приведенный ниже код не работает (он не рассматривает (Int :: String :: HNil) как...
80 просмотров
schedule 31.10.2023

Тегированный тип против класса расширяет AnyVal
Чтобы повысить безопасность типов, мы можем либо использовать тегированный тип, предоставляемый shapeless , либо создать класс, который расширяет AnyVal . Каковы различия и преимущества/недостатки использования одного над другим? Пример:...
898 просмотров
schedule 11.11.2023

Как проще всего объединить 2 бесформенные функции (replaceAt и at)?
Может быть, кто-то может помочь мне с бесформенным? Я новичок в этом. Моя конкретная задача - создать функцию, которая преобразует данный элемент кортежа в Option. Например: val inp: (String, Int) = ("zzz", 5) myfunc(inp, 1) должен...
111 просмотров
schedule 20.12.2023

play-json на AST с параметрами типа
Я пытаюсь создать чтение и запись play-json для AST, который в основном выглядит так abstract sealed trait Rule[A] { def roomId: Option[Long] = None def valid(in: A): Boolean } abstract sealed trait ValueRule[A, B] extends Rule[A] {...
710 просмотров

Собирайте экземпляры через LiftAll
Я пытаюсь описать типы, которые содержит класс case. import shapeless._ import shapeless.ops.hlist.LiftAll trait Desc[T] { def description: String } case class Foo(f: Int) object Foo { implicit val description: Desc[Foo] = new Desc[Foo] {...
161 просмотров
schedule 03.11.2022

как использовать shapeless для определения аннотации типа поля
Я пытаюсь собрать поля класса case, которые имеют определенные аннотации во время компиляции, используя shapeless . Я попытался поиграть со следующим фрагментом, но это не сработало, как ожидалось (ничего не выводилось вместо печати «i»). Как я...
722 просмотров
schedule 30.09.2022

pureconfig не может получить класс case со многими атрибутами
Я не могу получить класс case со многими атрибутами. Как ни странно, вывод варьируется между SBT и gradle. Минимальный воспроизводимый пример находится по адресу https://github.com/geoHeil/pureconfig-issue , также код указан ниже: сбт sbt...
562 просмотров

Как использовать shapeless для преобразования универсального Map[String, Any] в класс case внутри универсальной функции?
Я пытаюсь найти ответ здесь https://stackoverflow.com/a/31641779/1586965 То есть я хочу иметь возможность конвертировать (потенциально вложенный) Map[String, Any] в класс case. scalaVersion := "2.11.8" val shapelessV = "2.3.3" Если я...
467 просмотров

Можно ли в scala shapeless использовать буквальный тип в качестве параметра универсального типа?
Предполагая, что я пишу программу для умножения векторов. Следуя требованиям этой статьи: https://etrain.github.io/2015/05/28/type-safe-linear-algebra-in-scala Умножение должно успешно скомпилироваться только в том случае, если размерности...
271 просмотров
schedule 25.10.2022

Автоматически передавать HList в запись
Моя цель — автоматически переводить HList в Record по требованию. Обратите внимание, что приведенный ниже код написан на Scala 2.13 и использует одноэлементные типы вместо Symbol s. import shapeless._ import shapeless.record._ import...
67 просмотров
schedule 20.02.2024

Как определить тип HList, но на основе другого типа HList
Предположим, у меня есть класс case: case class Foo(num: Int, str: String, bool: Boolean) Теперь у меня также есть простая оболочка: sealed trait Wrapper[T] case class Wrapped[T](value: T) extends Wrapper[T] (и некоторые другие...
65 просмотров
schedule 03.11.2023

Shapeless: извлечь значение поля case case, параметризованное аннотацией
Я пытаюсь создать класс типов для возврата значения поля класса case, которое имеет определенную аннотацию во время компиляции, используя shapeless. Это дает класс случая аннотации Scala и общий класс случая, класс типов Identity[T] должен...
80 просмотров
schedule 18.01.2024