Skip to main content

normalize_payload_option

Function normalize_payload_option 

Source
pub fn normalize_payload_option(
    source: &IngestSource,
    payload: Option<IngestPayload>,
    cfg: &IngestConfig,
) -> Result<Option<CanonicalPayload>, IngestError>
Expand description

Normalizes the payload based on its type.

This is the main entry point for payload processing. It:

  1. Handles None payloads (returns None)
  2. Normalizes the payload value
  3. Validates text source requirements
  4. Returns the canonical payload

§Arguments

  • source - The ingest source (for type validation)
  • payload - The optional raw payload
  • cfg - Configuration for normalization

§Returns

  • Ok(Some(CanonicalPayload)) - Successfully normalized payload
  • Ok(None) - No payload provided
  • Err(IngestError) - Validation or normalization failure

§Errors

§Examples

use ingest::{normalize_payload_option, IngestPayload, IngestSource, IngestConfig};

let config = IngestConfig::default();

// Text normalization
let result = normalize_payload_option(
    &IngestSource::RawText,
    Some(IngestPayload::Text("  Hello   world  ".to_string())),
    &config
).unwrap();

// Binary preservation
let result = normalize_payload_option(
    &IngestSource::File { filename: "test.bin".to_string(), content_type: None },
    Some(IngestPayload::Binary(vec![1, 2, 3])),
    &config
).unwrap();