The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

OpenTracing::Types - Type constraints for checking Interfaces

SYNOPSIS

    use OpenTracing::Types qw/Span/;
    #
    # imports the 'Span' Type
    
    use Types::Standard qw/Maybe/;
    use Types::Common::Numeric qw/PositiveOrZeroNum/;
    
    use Function::Parameters;
    use Function::Return;
    
    # create a subroutine with some fancy type checks
    #
    sub time_gap (Span $span1, Span $span2) :Return Maybe[PositiveOrZeroNum] {
        return unless $span1->finish_time and $span2->start_time;
        return $span2->start_time - $span1->finish_time
    }

DESCRIPTION

This library of Type::Tiny type constraints provide Duck Type checks for all common elements that conform OpenTracing::Interface

See "Export" in Type::Library about the various ways to import types an related methods.

TYPES

The following Duck Types are being defined with the mentioned required methods:

ContextReference

new_child_of
new_follows_from
get_referenced_context
type_is_child_of
type_is_follows_from

See also "INSTANCE METHODS" in OpenTracing::Interface::ContextReference and "CONSTRUCTOR METHODS" in OpenTracing::Interface::ContextReference.

Scope

close
get_span

See also "INSTANCE METHODS" in OpenTracing::Interface::Scope.

ScopeManager

activate_span
get_active_scope

See also "INSTANCE METHODS" in OpenTracing::Interface::ScopeManager.

Span

get_context
overwrite_operation_name
finish
set_tag
log_data
set_baggage_item
get_baggage_item

See also "INSTANCE METHODS" in OpenTracing::Interface::Span.

SpanContext

get_baggage_item
with_baggage_item

See also "INSTANCE METHODS" in OpenTracing::Interface::SpanContext.

Tracer

get_scope_manager
get_active_span
start_active_span
start_span
inject_context
extract_context

See also "INSTANCE METHODS" in OpenTracing::Interface::Tracer.

AUTHOR

Theo van Hoesel <tvanhoesel@perceptyx.com>

COPYRIGHT AND LICENSE

'OpenTracing Types' is Copyright (C) 2020, Perceptyx Inc

This library is free software; you can redistribute it and/or modify it under the terms of the Artistic License 2.0.

This library is distributed in the hope that it will be useful, but it is provided "as is" and without any express or implied warranties.

For details, see the full text of the license in the file LICENSE.