12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- // SPDX-FileCopyrightText: 2023 The Pion community <https://pion.ly>
- // SPDX-License-Identifier: MIT
- package ice
- import (
- "fmt"
- )
- // Role represents ICE agent role, which can be controlling or controlled.
- type Role byte
- // Possible ICE agent roles.
- const (
- Controlling Role = iota
- Controlled
- )
- // UnmarshalText implements TextUnmarshaler.
- func (r *Role) UnmarshalText(text []byte) error {
- switch string(text) {
- case "controlling":
- *r = Controlling
- case "controlled":
- *r = Controlled
- default:
- return fmt.Errorf("%w %q", errUnknownRole, text)
- }
- return nil
- }
- // MarshalText implements TextMarshaler.
- func (r Role) MarshalText() (text []byte, err error) {
- return []byte(r.String()), nil
- }
- func (r Role) String() string {
- switch r {
- case Controlling:
- return "controlling"
- case Controlled:
- return "controlled"
- default:
- return "unknown"
- }
- }
|