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:
- Handles
Nonepayloads (returnsNone) - Normalizes the payload value
- Validates text source requirements
- Returns the canonical payload
§Arguments
source- The ingest source (for type validation)payload- The optional raw payloadcfg- Configuration for normalization
§Returns
Ok(Some(CanonicalPayload))- Successfully normalized payloadOk(None)- No payload providedErr(IngestError)- Validation or normalization failure
§Errors
IngestError::InvalidMetadata- Text source received binary payload- All errors from
normalize_payload_value
§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();