Expand description
§ngdp-bpsv
A comprehensive parser and writer for BPSV (Blizzard Pipe-Separated Values) format, used throughout Blizzard’s NGDP (Next Generation Distribution Pipeline) system.
BPSV is a structured data format with typed columns, sequence numbers, and pipe-separated values.
§Format Structure
FieldName!TYPE:length|AnotherField!TYPE:length
## seqn = 12345
value1|value2
value3|value4
§Quick Start
§Parsing BPSV Data
use ngdp_bpsv::BpsvDocument;
let data = "Region!STRING:0|BuildId!DEC:4\n## seqn = 12345\nus|1234\neu|5678";
let doc = BpsvDocument::parse(data)?;
println!("Sequence: {:?}", doc.sequence_number());
println!("Rows: {}", doc.rows().len());
§Building BPSV Data
use ngdp_bpsv::{BpsvBuilder, BpsvFieldType, BpsvValue};
let mut builder = BpsvBuilder::new();
builder.add_field("Region", BpsvFieldType::String(0))?;
builder.add_field("BuildId", BpsvFieldType::Decimal(4))?;
builder.set_sequence_number(12345);
builder.add_row(vec![
BpsvValue::String("us".to_string()),
BpsvValue::Decimal(1234),
])?;
let bpsv_output = builder.build()?;
Re-exports§
pub use builder::BpsvBuilder;
pub use document::BpsvDocument;
pub use error::Error;
pub use error::Result;
pub use field_type::BpsvFieldType;
pub use parser::BpsvParser;
pub use schema::BpsvField;
pub use schema::BpsvSchema;
pub use value::BpsvValue;
Modules§
- builder
- BPSV document builder for creating BPSV content programmatically
- document
- BPSV document representation
- error
- Error types for BPSV parsing and building
- field_
type - BPSV field type definitions and parsing
- parser
- BPSV document parser
- schema
- BPSV schema definitions for field structure
- value
- BPSV value types with type-safe conversions