union_type 1.0.1

  • README.md
  • Installing
  • Versions
  • 8

union_type #

version 1.0.0+1 build status

Dart union type library. This library no longer depends on dart:mirrors.

Usage #

union_type provides helpers for type assertions across types that do not share ancestry.

import 'package:union_type/union_type.dart';
const UnionType BAZ = const UnionType('Baz', types: const [Foo, Bar]);

main() {
    BAZ.enforce(new Foo()); // No error
    BAZ.enforce(new Bar()); // No error
    BAZ.enforce({}); // TypeError
    BAZ.enforceAll([1, 2]); // TypeError
    
    if (BAZ.check(foo)) {
        // Do something
    } else {
        // Do something else
    }
}

Union types can assert other union types as well.

const UnionType MASTER =
    const UnionType('MasterType', types: const [BAZ, OtherType]);

You can also create a list of items, asserting that they match the type.

import 'package:union_type/union_type.dart';
const UnionType MONSTER =
    const UnionType('Monster', types: const [Franken, Stein]);

main() {
    var monsterArmy = new TypedList(MONSTER);

    monsterArmy.add(new Franken());
    monsterArmy.add(new Stein());

    for (var monster in monsterArmy) {
        print('MWAHAHAHA: $monster');
    }

    monsterArmy.add(2); // TypeError
    monsterArmy.addAll([2, 3, 4, '5']); // TypeError
}

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  union_type: ^1.0.1

2. Install it

You can install packages from the command line:

with pub:


$ pub get

Alternatively, your editor might support pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:union_type/union_type.dart';
  
Version Uploaded Documentation Archive
1.0.1 Jul 15, 2017 Go to the documentation of union_type 1.0.1 Download union_type 1.0.1 archive
1.0.0+1 Dec 17, 2016 Go to the documentation of union_type 1.0.0+1 Download union_type 1.0.0+1 archive
1.0.0 Dec 17, 2016 Go to the documentation of union_type 1.0.0 Download union_type 1.0.0 archive
Popularity:
Describes how popular the package is relative to other packages. [more]
16
Health:
Code health derived from static analysis. [more]
--
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
--
Overall:
Weighted score of the above. [more]
8
Learn more about scoring.

The package version is not analyzed, because it does not support Dart 2. Until this is resolved, the package will receive a health and maintenance score of 0.

Analysis issues and suggestions

Support Dart 2 in pubspec.yaml.

The SDK constraint in pubspec.yaml doesn't allow the Dart 2.0.0 release. For information about upgrading it to be Dart 2 compatible, please see https://www.dartlang.org/dart-2#migration.

Maintenance issues and suggestions

Make sure dartdoc successfully runs on your package's source files. (-10 points)

Dependencies were not resolved.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=1.19.0