Skip to content

add a way to not run the code to create the operation when using the no-op impl.  #27

@yogurtearl

Description

@yogurtearl

We want to avoid calling thing.slowToString() in release builds.

            busyBee.busyWith(thing.slowToString());
            try {
                thing.process();
            } finally {
                // Espresso will continue
                busyBee.completed(thing.slowToString());
            }

maybe something like:

            // { thing.slowToString() } is only executed when busyBee
            val thingOperationId: OperationId = busyBee.createOperationId { counter -> thing.slowToString(counter) }
            busyBee.busyWith(thingOperationId);
            try {
                thing.process();
            } finally {
                // Espresso will continue
                busyBee.completed(thingOperationId);
            }

sealed class OperationId {
    object NoOp: OperationId()
    class StringOperationId(val operationId: String): OperationId()
}

the noop impl of busybee returns NoOp in release builds.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions