from static method

Implementation

static Danger<OperatableCollection, CitrusSyntaxException> from(String operator) {

    final log = Log(classLocation: OperatableCollection, functionLocation: 'from');

    final List<Operatable> list = [];

    for (final character in operator.split('')) {

        final result = LeafCitrusSyntax.result(character);
        log.add(result);
        if (result is! Success<LeafCitrusSyntax, LeafCitrusSyntaxExceptionA>) return Failure(result.asException, log);

        final id = result.wrapped;

        if (id is! Operatable) return Failure(CitrusSyntaxExceptionA(), log.monitor({
            'message': 'value is not Operatable in OperatableCollection.from',
        }));

        list.add(id);

    }

    final result = OperatableCollection.fromIterable(list);

    return Success(result, log);

}