zyn.Storage#
pub const Storage = struct {
pub const Blob = Core.Blob;
pub const Reader = Core.Reader;
pub const Writer = Core.Writer;
pub const ServeOptions = Core.ServeOptions;
pub const Disposition = Core.Disposition;
pub const UrlOptions = Core.UrlOptions;
pub const VariantName = std.meta.FieldEnum(@TypeOf(recipes));
pub const WriteOptions = struct {
filename: []const u8,
media_type: []const u8,
expected_sha256: ?[32]u8 = null,
variants: []const VariantName = &.{},
};
pub const WriterOptions = struct {
filename: []const u8,
media_type: []const u8,
expected_size: u64,
expected_sha256: ?[32]u8 = null,
variants: []const VariantName = &.{},
};
pub fn write(self: Storage, contents: []const u8, options: WriteOptions) !Blob;
pub fn writer(self: Storage, options: WriterOptions) !Writer;
pub fn generate_variants(self: Storage, original_id: []const u8, names: []const VariantName) !void;
pub fn variant(self: Storage, original_id: []const u8, name: VariantName) !Core.Variant;
pub const Transaction = struct {
pub fn purge(self: *@This(), blob: Blob) !void;
pub fn generate_variants(self: *@This(), original_id: []const u8, names: []const VariantName) !void;
};
pub fn get(self: Storage, id: []const u8) !?Blob;
pub fn read(self: Storage, blob: Blob, limit: std.Io.Limit) !?[]const u8;
pub fn reader(self: Storage, blob: Blob) !?Reader;
pub fn serve(self: Storage, blob: Blob, options: ServeOptions) !Response;
pub fn public_url(self: Storage, blob: Blob, options: UrlOptions) ![]const u8;
pub fn temporary_url(self: Storage, blob: Blob, lifetime: std.Io.Duration, options: UrlOptions) ![]const u8;
pub fn purge(self: *Storage, blob: Blob) !void;
};