DigitalData constructor

DigitalData({
  1. int significantFigures = 10,
  2. bool removeTrailingZeros = true,
  3. dynamic name,
})

Class for digitalData conversions, e.g. if you want to convert 1 megabit in kilobyte:

var digitalData = DigitalData(removeTrailingZeros: false);
digitalData.convert(Unit(DIGITAL_DATA.megabit, value: 1));
print(DIGITAL_DATA.kilobyte);

Implementation

DigitalData(
    {this.significantFigures = 10, this.removeTrailingZeros = true, name}) {
  this.name = name ?? PROPERTY.digitalData;
  size = DIGITAL_DATA.values.length;
  Node conversionTree = Node(name: DIGITAL_DATA.bit, leafNodes: [
    Node(
      coefficientProduct: 4.0,
      name: DIGITAL_DATA.nibble,
    ),
    Node(
      coefficientProduct: 1e3,
      name: DIGITAL_DATA.kilobit,
    ),
    Node(
      coefficientProduct: 1e6,
      name: DIGITAL_DATA.megabit,
    ),
    Node(
      coefficientProduct: 1e9,
      name: DIGITAL_DATA.gigabit,
    ),
    Node(
      coefficientProduct: 1e12,
      name: DIGITAL_DATA.terabit,
    ),
    Node(
      coefficientProduct: 1e15,
      name: DIGITAL_DATA.petabit,
    ),
    Node(
      coefficientProduct: 1e18,
      name: DIGITAL_DATA.exabit,
    ),
    Node(coefficientProduct: 1024.0, name: DIGITAL_DATA.kibibit, leafNodes: [
      Node(
          coefficientProduct: 1024.0,
          name: DIGITAL_DATA.mebibit,
          leafNodes: [
            Node(
                coefficientProduct: 1024.0,
                name: DIGITAL_DATA.gibibit,
                leafNodes: [
                  Node(
                      coefficientProduct: 1024.0,
                      name: DIGITAL_DATA.tebibit,
                      leafNodes: [
                        Node(
                            coefficientProduct: 1024.0,
                            name: DIGITAL_DATA.pebibit,
                            leafNodes: [
                              Node(
                                coefficientProduct: 1024.0,
                                name: DIGITAL_DATA.exbibit,
                              )
                            ])
                      ])
                ])
          ])
    ]),
    Node(coefficientProduct: 8.0, name: DIGITAL_DATA.byte, leafNodes: [
      Node(
        coefficientProduct: 1e3,
        name: DIGITAL_DATA.kilobyte,
      ),
      Node(
        coefficientProduct: 1e6,
        name: DIGITAL_DATA.megabyte,
      ),
      Node(
        coefficientProduct: 1e9,
        name: DIGITAL_DATA.gigabyte,
      ),
      Node(
        coefficientProduct: 1e12,
        name: DIGITAL_DATA.terabyte,
      ),
      Node(
        coefficientProduct: 1e15,
        name: DIGITAL_DATA.petabyte,
      ),
      Node(
        coefficientProduct: 1e18,
        name: DIGITAL_DATA.exabyte,
      ),
      Node(
          coefficientProduct: 1024.0,
          name: DIGITAL_DATA.kibibyte,
          leafNodes: [
            Node(
                coefficientProduct: 1024.0,
                name: DIGITAL_DATA.mebibyte,
                leafNodes: [
                  Node(
                      coefficientProduct: 1024.0,
                      name: DIGITAL_DATA.gibibyte,
                      leafNodes: [
                        Node(
                            coefficientProduct: 1024.0,
                            name: DIGITAL_DATA.tebibyte,
                            leafNodes: [
                              Node(
                                  coefficientProduct: 1024.0,
                                  name: DIGITAL_DATA.pebibyte,
                                  leafNodes: [
                                    Node(
                                      coefficientProduct: 1024.0,
                                      name: DIGITAL_DATA.exbibyte,
                                    ),
                                  ]),
                            ]),
                      ]),
                ]),
          ]),
    ]),
  ]);

  _customConversion = CustomConversion(
      conversionTree: conversionTree,
      mapSymbols: mapSymbols,
      significantFigures: significantFigures,
      removeTrailingZeros: removeTrailingZeros);
}