// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
#[derive(PartialEq)]
pub enum ProviderType {
None,
Resource(String), // Custom asynchronous resource
// Userland provider types
Immediate, // [Immediate] Processing by setImmediate()
Interval, // [Interval] Timer by setInterval()
MessagePort, // [MessagePort] Port for worker_threads
Microtask, // [Microtask] Processing by queueMicrotask()
TickObject, // [TickObject] Processing by process.nextTick()
Timeout, // [Timeout] Timer by setTimeout()
// Internal provider types
FsReqCallback, // [FSREQCALLBACK] Callback for file system operations
GetAddrInfoReqWrap, // [GETADDRINFOREQWRAP] When resolving DNS (dns.lookup(), etc.)
GetNameInfoReqWrap, // [GETNAMEINFOREQWRAP] DNS reverse lookup
PipeWrap, // [PIPEWRAP] Pipe connection
StatWatcher, // [STATWACHER] File monitoring such as fs.watch()
TcpWrap, // [TCPWRAP] TCP socket wrap (net.Socket, etc.)
TimerWrap, // [TIMERWRAP] Internal timer wrap (low level)
TlsWrap, // [TLSWRAP] TLS socket (HTTPS, etc.)
UdpWrap, // [UDPWRAP] UDP socket wrap (dgram module)
}