1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
/*
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * SPDX-License-Identifier: Apache-2.0
 */
#[derive(Debug)]
#[non_exhaustive]
pub(crate) enum Phase {
    /// Represents the phase of an operation prior to serialization.
    BeforeSerialization,
    /// Represents the phase of an operation where the request is serialized.
    Serialization,
    /// Represents the phase of an operation prior to transmitting a request over the network.
    BeforeTransmit,
    /// Represents the phase of an operation where the request is transmitted over the network.
    Transmit,
    /// Represents the phase of an operation prior to parsing a response.
    BeforeDeserialization,
    /// Represents the phase of an operation where the response is parsed.
    Deserialization,
    /// Represents the phase of an operation after parsing a response.
    AfterDeserialization,
}
impl Phase {
    pub(crate) fn is_before_serialization(&self) -> bool {
        matches!(self, Self::BeforeSerialization)
    }
    pub(crate) fn is_serialization(&self) -> bool {
        matches!(self, Self::Serialization)
    }
    pub(crate) fn is_before_transmit(&self) -> bool {
        matches!(self, Self::BeforeTransmit)
    }
    pub(crate) fn is_transmit(&self) -> bool {
        matches!(self, Self::Transmit)
    }
    pub(crate) fn is_before_deserialization(&self) -> bool {
        matches!(self, Self::BeforeDeserialization)
    }
    pub(crate) fn is_deserialization(&self) -> bool {
        matches!(self, Self::Deserialization)
    }
    pub(crate) fn is_after_deserialization(&self) -> bool {
        matches!(self, Self::AfterDeserialization)
    }
}