busybee icon indicating copy to clipboard operation
busybee copied to clipboard

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

Open yogurtearl opened this issue 4 years ago • 0 comments

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.

yogurtearl avatar Oct 12 '21 20:10 yogurtearl