replpp.shaded.geny

Members list

Type members

Classlikes

trait ByteData

Encapsulates an Array[Byte] and provides convenience methods for reading the data out of it.

Encapsulates an Array[Byte] and provides convenience methods for reading the data out of it.

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class Chunks
class OutputStream
object ByteData

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
ByteData.type
class Bytes(val array: Array[Byte])

Trivial wrapper around Array[Byte] with sane equality and useful toString

Trivial wrapper around Array[Byte] with sane equality and useful toString

Attributes

Supertypes
class Object
trait Matchable
class Any
trait Generator[+A]

Provides the geny.Gen data type, A Generator of elements of type A.

Provides the geny.Gen data type, A Generator of elements of type A.

Generator is basically the inverse of a scala.Iterator: instead of the core functionality being the pull-based hasNext and next: T methods, the core is based around the push-based generate method. generate is basically an extra-customizable version of foreach, which allows the person calling it to provide basic control-flow instructions to the upstream Gens.

Unlike a scala.Iterator, subclasses of Generator can guarantee any clean up logic is performed by placing it after the generate call is made.

Transformations on a Generator are lazy: calling methods like filter or map do not evaluate the entire Gen, but instead construct a new Gen that delegates to the original. The only methods that evaluate the Generator are the "Action" methods like generate/foreach/find, or the "Conversion" methods like toArray or similar.

generate takes a function returning Gen.Action rather that Unit. This allows a downstream Gen to provide basic control commands to the upstream Gens: i.e. Generator.End to cease enumeration of the upstream Gen. This allows it to avoid traversing and processing elements that the downstream Gen doesn't want/need to see anyway.

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
object Generator

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
Generator.type
object Internal

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
Internal.type

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
object Writable.type
trait Readable extends Writable

A Readable is a source of bytes that can be read from an InputStream

A Readable is a source of bytes that can be read from an InputStream

A subtype of Writable, every Readable can be trivially used as a Writable by transferring the bytes from the InputStream to the OutputStream, but not every Writable is a Readable.

Note that the InputStream is only available inside the readBytesThrough, and may be closed and cleaned up (along with any associated resources) once the callback returns.

Attributes

Companion
object
Supertypes
trait Writable
class Object
trait Matchable
class Any
Known subtypes
object Readable

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
Readable.type
trait Writable

A Writable is a source of bytes that can be written to an OutputStream.

A Writable is a source of bytes that can be written to an OutputStream.

Essentially a push-based version of java.io.InputStream, that allows an implementation to guarantee that cleanup logic runs after the bytes are written.

Writable is also much easier to implement than java.io.InputStream: any code that previously wrote output to an ByteArrayOutputStream or StringBuilder can trivially satisfy the Writable interface. That makes Writable very convenient to use for allowing zero-friction zero-overhead streaming data exchange between different libraries.

Writable comes with implicit constructors from Array[Byte], String and InputStream, and is itself a tiny interface with minimal functionality. Libraries using Writable are expected to extend it to provide additional methods or additional implicit constructors that make sense in their context.

Attributes

Companion
object
Supertypes
class Any
Known subtypes
object Writable extends LowPriWritable

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
Writable.type