pub enum PacketType {
RawAudio(AudioFormat),
OpusAudio,
Text,
Transcription,
Custom {
type_id: String,
},
Binary,
Any,
Passthrough,
}Expand description
Describes the type of data, used for pre-flight pipeline validation.
Variants§
RawAudio(AudioFormat)
Raw, uncompressed audio with a specific format.
OpusAudio
Compressed Opus audio.
Text
Plain text.
Transcription
Structured transcription data with timestamps and metadata.
Custom
Extensible structured packet type (typically produced/consumed by plugins).
type_id should be namespaced and versioned (e.g., plugin::native::vad/vad-event@1).
Binary
Generic binary data.
Any
A special type for nodes that can accept any format.
Passthrough
A type that passes through the input type unchanged (for type inference).
Used by passthrough nodes like pacer, script, and passthrough, where output type = input type.
Validation Behavior:
- OneShot (static) pipelines: Passthrough types are resolved at compile-time during pipeline compilation. The graph builder traces connections and resolves each Passthrough output to the concrete type of its input. This allows full pre-flight type checking.
- Dynamic pipelines: Passthrough types are validated at runtime during connection. When a connection involves Passthrough, the connection is allowed and the type will be resolved when actual packets flow through the node.
Example: A pacer node with Passthrough output connected to a raw audio input will:
- In oneshot mode: Be resolved to
RawAudioduring compilation - In dynamic mode: Accept the connection and adapt at runtime to whatever audio format it receives
Trait Implementations§
Source§impl Clone for PacketType
impl Clone for PacketType
Source§fn clone(&self) -> PacketType
fn clone(&self) -> PacketType
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for PacketType
impl Debug for PacketType
Source§impl<'de> Deserialize<'de> for PacketType
impl<'de> Deserialize<'de> for PacketType
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<PacketType, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<PacketType, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl JsonSchema for PacketType
impl JsonSchema for PacketType
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Returns a string that uniquely identifies the schema produced by this type. Read more
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Generates a JSON Schema for this type. Read more
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
Whether JSON Schemas generated for this type should be included directly in parent schemas,
rather than being re-used where possible using the
$ref keyword. Read moreSource§impl PartialEq for PacketType
impl PartialEq for PacketType
Source§impl Serialize for PacketType
impl Serialize for PacketType
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
Source§impl TS for PacketType
impl TS for PacketType
Source§type WithoutGenerics = PacketType
type WithoutGenerics = PacketType
If this type does not have generic parameters, then
WithoutGenerics should just be Self.
If the type does have generic parameters, then all generic parameters must be replaced with
a dummy type, e.g ts_rs::Dummy or ().
The only requirement for these dummy types is that EXPORT_TO must be None. Read moreSource§type OptionInnerType = PacketType
type OptionInnerType = PacketType
If the implementing type is
std::option::Option<T>, then this associated type is set to T.
All other implementations of TS should set this type to Self instead.Source§fn docs() -> Option<String>
fn docs() -> Option<String>
JSDoc comment to describe this type in TypeScript - when
TS is derived, docs are
automatically read from your doc comments or #[doc = ".."] attributesSource§fn decl_concrete() -> String
fn decl_concrete() -> String
Declaration of this type using the supplied generic arguments.
The resulting TypeScript definition will not be generic. For that, see
TS::decl().
If this type is not generic, then this function is equivalent to TS::decl().Source§fn decl() -> String
fn decl() -> String
Declaration of this type, e.g.
type User = { user_id: number, ... }.
This function will panic if the type has no declaration. Read moreSource§fn inline() -> String
fn inline() -> String
Formats this types definition in TypeScript, e.g
{ user_id: number }.
This function will panic if the type cannot be inlined.Source§fn inline_flattened() -> String
fn inline_flattened() -> String
Flatten a type declaration.
This function will panic if the type cannot be flattened.
This function will panic if the type cannot be flattened.
Source§fn visit_generics(v: &mut impl TypeVisitor)where
PacketType: 'static,
fn visit_generics(v: &mut impl TypeVisitor)where
PacketType: 'static,
Iterates over all type parameters of this type.
Source§fn output_path() -> Option<PathBuf>
fn output_path() -> Option<PathBuf>
Returns the output path to where
The returned path does not include the base directory from
T should be exported.The returned path does not include the base directory from
TS_RS_EXPORT_DIR. Read moreSource§fn visit_dependencies(v: &mut impl TypeVisitor)where
PacketType: 'static,
fn visit_dependencies(v: &mut impl TypeVisitor)where
PacketType: 'static,
Iterates over all dependency of this type.
Source§fn dependencies() -> Vec<Dependency>where
Self: 'static,
fn dependencies() -> Vec<Dependency>where
Self: 'static,
Resolves all dependencies of this type recursively.
Source§fn export() -> Result<(), ExportError>where
Self: 'static,
fn export() -> Result<(), ExportError>where
Self: 'static,
Manually export this type to the filesystem.
To export this type together with all of its dependencies, use
TS::export_all. Read moreSource§fn export_all() -> Result<(), ExportError>where
Self: 'static,
fn export_all() -> Result<(), ExportError>where
Self: 'static,
Manually export this type to the filesystem, together with all of its dependencies.
To export only this type, without its dependencies, use
To export only this type, without its dependencies, use
TS::export. Read moreSource§fn export_all_to(out_dir: impl AsRef<Path>) -> Result<(), ExportError>where
Self: 'static,
fn export_all_to(out_dir: impl AsRef<Path>) -> Result<(), ExportError>where
Self: 'static,
Manually export this type into the given directory, together with all of its dependencies.
To export only this type, without its dependencies, use
To export only this type, without its dependencies, use
TS::export. Read moreSource§fn export_to_string() -> Result<String, ExportError>where
Self: 'static,
fn export_to_string() -> Result<String, ExportError>where
Self: 'static,
impl Eq for PacketType
impl StructuralPartialEq for PacketType
Auto Trait Implementations§
impl Freeze for PacketType
impl RefUnwindSafe for PacketType
impl Send for PacketType
impl Sync for PacketType
impl Unpin for PacketType
impl UnwindSafe for PacketType
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more