xyz.cofe.jtfm.store.json

Type members

Classlikes

enum AST(val begin: Ptr, val end: Ptr)

AST дерево

AST дерево

Типы узлов

  • Id - Идентификатор - буквенная последовательность
  • True - Идентификатор, пример true
  • False - Идентификатор, пример false
  • Null - Идентификатор, пример null
  • Str - Строковой литерал, пример "sample"
  • Num - Число, пример -12.3
  • Arr - Массив, пример [ 1, "b" ]
  • Field - поле/свойство объекта и его значение, пример "field" : 2
  • Obj - объект, пример { "field": 1, "a": true }
Value parameters:
begin

начало в тексте

end

конец в тексте

Companion:
object
object AST
Companion:
class
trait DefaultValue[T]

Значение по умолчанию, используется при восстановлении из Json

Значение по умолчанию, используется при восстановлении из Json

Пример

case class Append(value:String)
object Append:
given DefaultValue[Append] with
  override def defaultValue: Option[Append] = Some(Append("def_value"))
Companion:
object
Companion:
class
trait FromJson[T]

Извлечение из структуры из Json

Извлечение из структуры из Json

Companion:
object
object FromJson
Companion:
class
enum JS
case class LPtr(value: Int, source: Seq[Token])

Указатель на позицию токена в списке токенов

Указатель на позицию токена в списке токенов

trait Lexer[T <: Token]
Companion:
object
object Lexer
Companion:
class
trait ObjOpt
object Parser
case class Ptr(value: Int, source: String)

Указатель на позицию в тексте

Указатель на позицию в тексте

trait Show[T]
Companion:
object
object Show
Companion:
class
trait ToJson[T]
Companion:
object
object ToJson
Companion:
class
trait ToJsonString[T]
Companion:
object
Companion:
class
enum Token(val begin: Ptr, val end: Ptr)

Лексемы Json

Лексемы Json

Value parameters:
begin

Указатель на начало в тексте

end

Указатель на конец в тексте

object syntax

Value members

Concrete methods

inline def labelFromMirror[A](using m: Of[A]): String
inline def labelsFrom[A <: Tuple]: List[String]
inline def labelsOf[A](using m: Of[A]): List[String]
inline def summonAllDefaultValue[T <: Tuple]: List[DefaultValue[_]]
inline def summonAllFromJson[T <: Tuple]: List[FromJson[_]]
inline def summonAllToJson[T <: Tuple]: List[ToJson[_]]

Extensions

Extensions

extension (ast: AST)
def bool: Option[Boolean]
def id: Option[String]
def isNull: Boolean
def json: String
def list: Option[List[AST]]
def num: Option[Double]
def obj: Option[Map[String, AST]]
def str: Option[String]
def toJson: Either[String, JS]
extension (optChr: Option[Char])
def in(chars: String): Boolean
def is(check: Char => Boolean): Boolean
def isDigit: Boolean
def isLetter: Boolean
def isWhiteSpace: Boolean
extension [T](optValue: Option[T])
def lift: Either[String, T]
def lift(errMessage: String): Either[String, T]
extension (str: String)
def decodeLitteral: String
def encodeLitteral: String
extension (tok: Token)
def text: String
extension (tokens: Seq[Token])