Code Explainers

Code explainers tagged #serialization

rust
use axum::{
    extract::{Path, State},
    response::sse::{Event, KeepAlive, Sse},
};

Streaming import progress with SSE in Axum

server-sent-events streams watch-channel
Advanced 7 steps
rust
use base64::{engine::general_purpose::URL_SAFE_NO_PAD, Engine};
use serde::{Deserialize, Serialize};
use time::OffsetDateTime;
use uuid::Uuid;

Opaque pagination cursors in Rust

pagination serialization base64
Intermediate 8 steps
ruby
require "yaml"
require "date"
 
class Money

Custom YAML serialization in Ruby

serialization yaml custom-encoding
Intermediate 7 steps
python
from xml.etree import ElementTree as ET
from xml.dom import minidom
 
 

Converting nested dicts to XML in Python

recursion serialization xml
Intermediate 9 steps
java
public class Views {
    public interface Public {}
    public interface Internal extends Public {}
}

Filtering JSON fields with @JsonView in Spring

serialization json-view access-control
Intermediate 6 steps
typescript
type QueryValue = string | number | boolean | null | undefined;
type QueryInput = QueryValue | QueryValue[] | { [key: string]: QueryInput };
 
function buildQueryString(params: Record<string, QueryInput>): string {

Building nested query strings recursively

recursion url-encoding serialization
Intermediate 8 steps
ruby
require "securerandom"
require "time"
 
class ICalEvent

Building an iCalendar file in Ruby

serialization string-formatting file-formats
Intermediate 10 steps
java
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.module.SimpleModule;

Serializing Money to JSON in Spring

serialization jackson money
Intermediate 8 steps
php
<?php
 
namespace App\Services;
 

Building a valid iCalendar feed in PHP in Laravel

ical serialization formatting
Intermediate 8 steps
typescript
type CsvColumn<T> = {
  header: string;
  value: (row: T) => string | number | boolean | null | undefined;
};

Building a type-safe CSV writer in TypeScript

generics serialization escaping
Intermediate 7 steps
ruby
require "base64"
require "json"
 
module Attachment

Packing binary attachments into JSON

serialization base64 json
Intermediate 8 steps
typescript
import { Exclude, Expose, Transform, Type } from 'class-transformer';
 
export class AddressEntity {
  street: string;

Shaping API responses with class-transformer in NestJS

serialization decorators dto
Intermediate 10 steps
python
from flask import Blueprint, render_template, jsonify, request, abort
 
from .models import Article
 

Content negotiation in a Flask Blueprint

content-negotiation http-headers routing
Intermediate 7 steps
rust
use axum::{
    http::{header, StatusCode},
    response::{IntoResponse, Response},
    Json,

Turning errors into RFC 7807 responses in Axum

error-handling enums trait-implementation
Intermediate 7 steps
rust
use serde::{Deserialize, Serialize};
 
#[derive(Debug, Serialize, Deserialize)]
pub struct UserProfile {

Trimming JSON output with serde attributes

serialization json attributes
Intermediate 8 steps
rust
use axum::{
    body::Body,
    extract::State,
    http::{header, StatusCode},

Streaming NDJSON from Postgres in Axum

streaming backpressure async
Advanced 9 steps
ruby
require "csv"
 
class CsvExporter
  def initialize(records, columns: nil)

Turning records into CSV in Ruby

csv data-export serialization
Intermediate 7 steps
ruby
require "openssl"
require "json"
require "base64"
 

Building signed session tokens in Ruby

hmac authentication cryptography
Intermediate 8 steps