status-go/vendor/github.com/pion/sdp/v3/direction.go

63 lines
1.5 KiB
Go

// SPDX-FileCopyrightText: 2023 The Pion community <https://pion.ly>
// SPDX-License-Identifier: MIT
package sdp
import "errors"
// Direction is a marker for transmission directon of an endpoint
type Direction int
const (
// DirectionSendRecv is for bidirectional communication
DirectionSendRecv Direction = iota + 1
// DirectionSendOnly is for outgoing communication
DirectionSendOnly
// DirectionRecvOnly is for incoming communication
DirectionRecvOnly
// DirectionInactive is for no communication
DirectionInactive
)
const (
directionSendRecvStr = "sendrecv"
directionSendOnlyStr = "sendonly"
directionRecvOnlyStr = "recvonly"
directionInactiveStr = "inactive"
directionUnknownStr = ""
)
var errDirectionString = errors.New("invalid direction string")
// NewDirection defines a procedure for creating a new direction from a raw
// string.
func NewDirection(raw string) (Direction, error) {
switch raw {
case directionSendRecvStr:
return DirectionSendRecv, nil
case directionSendOnlyStr:
return DirectionSendOnly, nil
case directionRecvOnlyStr:
return DirectionRecvOnly, nil
case directionInactiveStr:
return DirectionInactive, nil
default:
return Direction(unknown), errDirectionString
}
}
func (t Direction) String() string {
switch t {
case DirectionSendRecv:
return directionSendRecvStr
case DirectionSendOnly:
return directionSendOnlyStr
case DirectionRecvOnly:
return directionRecvOnlyStr
case DirectionInactive:
return directionInactiveStr
default:
return directionUnknownStr
}
}