Bootstring encoding as defined in From: https://tools.ietf.org/html/rfc3492
Provides a compatibility layer between Scala 2.11/2.12 and 2.13/3.x
Similar to Reader except for reading Unicode Code Points instead of Java Characters.
Similar to Reader except for reading Unicode Code Points instead of Java Characters.
See java.io.Reader for API descriptions. The behavior of this trait should mimic java.io.Reader.
EXPERIMENTAL - A Scala mutable map that wraps a java ConcurrentHashMap and allows null values
EXPERIMENTAL - A Scala mutable Set based on ConcurrentHashMap
A Dummy Resource that does nothing
For Resource.flatMap
Like java.io.ByteArrayOutputStream but exposes the internal Array
Provides a compatibility layer between Scala 2.11/2.12 and 2.13/3.x
Used in RichHTMLDocument
Represents an immutable java.util.Date
Represents an immutable java.util.Date
This provides an immutable milliseconds since epoch representation of a date when it might be a mismatch to use the newer java.time.Instance (which represents things as nanoseconds since or before epoch)
NOTE: NOT extending AnyVal so that nulls still work (just like with java.util.Date)
These are the Implicits that are shared between both the JVM and JS Implicits trait/object
These are the Implicits that are shared between both the JVM and JS Implicits trait/object
No Native java.time.Instant support in Scala JS so create a dummy class
Javascript Stub that does nothing
EXPERIMENTAL - A Java Set based on ConcurrentHashMap
No Native java.time.LocalDate support in Scala JS so create a dummy class
For Resource.map
A Resource that can be used multiple times (e.g.
A Resource that can be used multiple times (e.g. opening an InputStream or Reader for a File)
scala.math.Ordering only goes up to Tuple9
Represents immutable query parameters from a query string (e.g.
Represents immutable query parameters from a query string (e.g. "?foo=bar&asd=qwe").
This class distinguishes between 3 different types of values for a key:
An Automatically Managed Resource that can either be used once (e.g.
An Automatically Managed Resource that can either be used once (e.g. reading an input stream) or multiple times (e.g. reading a file).
The purpose of Resource is two-fold: 1 - To automatically handle closing a resource after it is done being used. 2 - To abstract the fact that some resources can be read multiple times while other resources are one-time use.
This is a replacement for the deprecated scala.collection.SeqProxy.
This is a replacement for the deprecated scala.collection.SeqProxy.
This doesn't implement Seq[A] like the original SeqProxy but instead just provides an implicit conversion from this trait into a Seq[A] which then gives you all the Seq functionality
This is here so that LazySeq can be split out into it's own project.
This is here so that LazySeq can be split out into it's own project.
Some implementations are still in our internal Util package for now until we get a chance to refactor and possible merge with our fm-serializer project.
A Resource that can only be used once (e.g.
A Resource that can only be used once (e.g. reading an InputStream)
Wraps a Scala mutable.HashMap inside of a ThreadLocal and exposes some simple operations.
Wraps a Scala mutable.HashMap inside of a ThreadLocal and exposes some simple operations.
The initial use case of this is for caching NumberFormat instances by Locale. This can be accomplished by overriding the initialValue method and just calling the apply() method with the Locale.
The HashMap Key
The HashMap Value
A stripped down scala.collection.TraversableOnce that can be used as the the basis for collections implemented only via a foreach method and for implicit rich wrappers that can be implemented only in terms of a foreach method.
A stripped down scala.collection.TraversableOnce that can be used as the the basis for collections implemented only via a foreach method and for implicit rich wrappers that can be implemented only in terms of a foreach method.
Several of our Scala libraries relied on the pre Scala 2.13 TraversableOnce as the base trait for its implementation (e.g. fm.lazyseq.LazySeq) or for rich wrappers (e.g. fm.common.RichTraversableOnce and fm.fastutil) where we primarily need just a foreach method. Starting in Scala 2.13 the built-in scala.collection.TraversableOnce is now a deprecated alias for IterableOnce which relies on an Iterator which we cannot always provide (e.g. fm.lazyseq.LazySeq).
A type alias for java.net.URI
A type alias for java.net.URL
A custom UUID implementation (not to be confused with java.util.UUID or RFC4122 implementations) that allows natural sorting by timestamp based on the string or numeric representation.
A custom UUID implementation (not to be confused with java.util.UUID or RFC4122 implementations) that allows natural sorting by timestamp based on the string or numeric representation.
The UUID consists of 16 bytes (128 bits) broken up into 2 longs:
timeAndCounter: {6-Byte Millis since epoch}{2-Byte Counter} nodeIdAndRandom: {2-Byte Node ID}{6-Byte Random Number}
The "pretty" hex encoded representation is: {6-byte millis since epoch}-{2-byte-counter}-{2-byte-optional-node-id}-{4-byte-random}
Example: 015247f01787-9740-85e0-3e9672a8dfa2
This goes along with the UUIDWrapper
This goes along with the UUIDWrapper
See documentation of UUIDWrapper for the intended usage of this class
An UUID wrapper class that allow you to define custom types that represent an UUID.
An UUID wrapper class that allow you to define custom types that represent an UUID.
The intended usage pattern is something like:
object UserId extends UUIDFactory[UserId](new UserId(_)) final class UserId(val uuid: UUID) extends UUIDWrapper[UserId]
This allows you to then reference UserId instead of UUID and to have methods that take a strongly typed UserId instead of an UUID (which could represent something other than a User id)
Note: The class that extends this should also extends AnyVal so that serialization will just pass through to the underlying uuid
Wraps an InputStream and makes the close() method do nothing
Wraps an OutputStream and makes the close() method do nothing
Helpers for accessing the "user-" attributes
Helpers for accessing the "user-" attributes
https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes
Provides a compatibility layer between Scala 2.11/2.12 and 2.13/3.x
Base58 is a way to encode Bitcoin addresses (or arbitrary data) as alphanumeric strings.
Base58 is a way to encode Bitcoin addresses (or arbitrary data) as alphanumeric strings.
Note that this is not the same base58 as used by Flickr, which you may find referenced around the Internet.
You may want to consider working with PrefixedChecksummedBytes
instead, which
adds support for testing the prefix and suffix bytes commonly found in addresses.
Satoshi explains: why base-58 instead of standard base-64 encoding?
However, note that the encoding/decoding runs in O(n²) time, so it is not useful for large data.
The basic idea of the encoding is to treat the data bytes as a large number represented using base-256 digits, convert the number to be represented using base-58 digits, preserve the exact number of leading zeros (which are otherwise lost during the mathematical operations on the numbers), and finally represent the resulting base-58 digits as alphanumeric ASCII characters.
Base64 encoding/decoding methods.
Base64 encoding/decoding methods.
Note: This will decode normal Base64 and the modified Base64 for URL variant. If you don't want this behavior then use Base64Strict or Base64URL directly.
Some type class hackery to solve the same problem as with the NodeType class
Some type class hackery to make our $ and $$ methods NOT default to Nothing when trying to do something like $("#some_id").parentNode.
Some type class hackery to make our $ and $$ methods NOT default to Nothing when trying to do something like $("#some_id").parentNode. You'd think this would work:
def $[T <: Node](selector: String): T = ??? $("#some_id").parentNode
But it doesn't:
Error: "value parentNode is not a member of Nothing"
Punycode as defined in From: https://tools.ietf.org/html/rfc3492
Implicits that go along with the Serializer trait
Simple wrappers for the java.net.URI constructors
Simple wrappers for the java.net.URL constructors
This is a marker Charset that is used to write out UTF-8 BOM encoding in OutputStreamResource
This is a marker Charset that is used to write out UTF-8 BOM encoding in OutputStreamResource
Originally I attempted to have the Charset directly encode the BOM (like the UTF-16 Charsets) but ran into problems with not being able to call into protected methods of the UTF-8 Charset implementation and did not want to copy/paste a bunch of code and/or implement a bunch of hacks to make it work properly.
An empty resource