NAME

OpenTracing::Implementation::Interface::Bootstrap - Ensure we do the right thing

SYNOPSIS

package My::OpenTracing::Implementation

sub bootstrap_tracer {
    my $class = shift;
    
    my @args = @_; # whatever
    
    ...
    
    my $tracer = ...
    
    return $tracer
}

BEGIN {
    use Role::Tiny::With;
    with 'OpenTracing::Implementation::Interface::Bootstrap'
        if $ENV{OPENTRACING_INTERFACE}
} # check at compile time, perl -c will work

1;

DESCRIPTION

This 'role' describes the interface needed for OpenTracing::Implementation bootstraps.

It does so be wrapping typechecks around a required method: bootstrap

REQUIRED METHODS

The below mentioned methods MUST be implemented by the consuming class:

bootstrap

A class method, that accepts further arguments to bootstrap or set-up a specific implementation