datauri

package
v0.0.0-...-3bb151c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 8, 2026 License: MIT Imports: 6 Imported by: 2

Documentation

Overview

Package datauri 提供 data URI 的解析、编码与文本序列化能力。

Index

Examples

Constants

This section is empty.

Variables

View Source
var ErrInvalidDataURI = errors.New("invalid data uri")

ErrInvalidDataURI 表示输入不符合 data URI 语法。

Functions

This section is empty.

Types

type DataURI

type DataURI struct {
	// MediaType 是 data URI 中声明的媒体类型,例如 text/plain 或 image/png。
	MediaType string
	// Params 保存媒体类型后的附加参数,例如 charset。
	Params map[string]string
	// Data 是解码后的原始数据体。
	Data []byte
}

DataURI 表示一个解析后的 data URI。

func Parse

func Parse(dataURI string) (*DataURI, error)

Parse 解析 data URI 文本,或将无前缀输入按 base64 数据体处理。

Example
package main

import (
	"fmt"

	"github.com/octohelm/x/datauri"
)

func main() {
	d, err := datauri.Parse("data:text/plain;charset=utf-8;base64,aGVsbG8=")
	if err != nil {
		panic(err)
	}

	fmt.Println(d.MediaType)
	fmt.Println(d.Params["charset"])
	fmt.Println(string(d.Data))
}
Output:
text/plain
utf-8
hello

func (*DataURI) Encoded

func (d *DataURI) Encoded(base64Encoded bool) string

Encoded 按指定是否使用 base64 返回 data URI 文本。

Example
package main

import (
	"fmt"

	"github.com/octohelm/x/datauri"
)

func main() {
	d := &datauri.DataURI{
		MediaType: "text/plain",
		Data:      []byte("hello world"),
	}

	fmt.Println(d.Encoded(false))
}
Output:
data:text/plain,hello%20world

func (DataURI) IsZero

func (d DataURI) IsZero() bool

IsZero 判断 data URI 是否不含数据体。

func (DataURI) MarshalText

func (d DataURI) MarshalText() ([]byte, error)

MarshalText 将 data URI 编码为文本。

func (DataURI) OpenAPISchemaFormat

func (DataURI) OpenAPISchemaFormat() string

OpenAPISchemaFormat 返回 data URI 的 OpenAPI format 名称。

func (DataURI) String

func (d DataURI) String() string

String 返回 base64 形式的 data URI 文本。

func (*DataURI) UnmarshalText

func (d *DataURI) UnmarshalText(text []byte) error

UnmarshalText 从文本解析 data URI。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL