org.ensime.sexp.formats.CollectionFormats

BitSetFormat

implicit object BitSetFormat extends SexpFormat[BitSet]

We only support deserialisation via im.BitSet as the general case requires going through a proxy to convert the bitmask into elements that can be read via CanBuildFrom. If you have your own (possibly compressed) implementation of BitSet you will need to provide your own format.

We encode the BigInt form as a String using emacs calc-eval notation (radix is part of the string). See ViaBigDecimalFormat for a longer discussion about emacs number formats.

This can potentially be used in Emacs using the following (which will parse the strings into big ints every time it is queried, so it's not particularly efficient):

(require 'calc) (defmath bitsetAnd (bitset i) (logand (lsh 1 i (+ 1 i)) bitset (+ 1 i))) (defun bitsetContains (bitset i) (not (string= "0" (calc-eval "bitsetAnd($, $$)" 'num bitset i))))

(bitsetContains "10#3" 0) ; 't (bitsetContains "10#3" 1) ; 't (bitsetContains "10#3" 2) ; nil (bitsetContains "32#10000000000000001" 0) ; t (bitsetContains "16#10000000000000001" 64) ; t (bitsetContains "16#10000000000000002" 1) ; t (bitsetContains "16#10000000000000002" 64) ; t (bitsetContains "16#10000000000000002" 0) ; nil

Linear Supertypes
SexpFormat[BitSet], SexpWriter[BitSet], SexpReader[BitSet], AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. BitSetFormat
  2. SexpFormat
  3. SexpWriter
  4. SexpReader
  5. AnyRef
  6. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  8. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  10. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  11. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  12. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  13. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  15. final def notify(): Unit

    Definition Classes
    AnyRef
  16. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  17. def read(m: Sexp): BitSet

    Definition Classes
    BitSetFormatSexpReader
  18. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  19. def toString(): String

    Definition Classes
    AnyRef → Any
  20. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  22. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. def write(bs: BitSet): Sexp

    Definition Classes
    BitSetFormatSexpWriter

Inherited from SexpFormat[BitSet]

Inherited from SexpWriter[BitSet]

Inherited from SexpReader[BitSet]

Inherited from AnyRef

Inherited from Any

Ungrouped