Skip to main content

SignedWatermarkParams

Struct SignedWatermarkParams 

Source
#[non_exhaustive]
pub struct SignedWatermarkParams { pub url: String, pub position: Option<String>, pub opacity: Option<u8>, pub margin: Option<u32>, }
Expand description

Builds a signed public transform URL for the server adapter.

The resulting URL targets either GET /images/by-path or GET /images/by-url depending on source. base_url must be an absolute http or https URL that points at the externally visible server origin. The helper applies the same canonical query and HMAC-SHA256 signature scheme that the server adapter verifies at request time.

The helper serializes only explicitly requested transform options and omits fields that would resolve to the documented defaults on the server side.

§Errors

Returns an error string when base_url is not an absolute http or https URL, when the visible authority cannot be determined, or when the HMAC state cannot be initialized.

§Examples

use truss::{sign_public_url, SignedUrlSource};
use truss::{MediaType, TransformOptions};

let mut options = TransformOptions::default();
options.format = Some(MediaType::Jpeg);

let url = sign_public_url(
    "https://cdn.example.com",
    SignedUrlSource::Path {
        path: "/image.png".to_string(),
        version: None,
    },
    &options,
    "public-dev",
    "secret-value",
    4_102_444_800,
    None,
    None,
)
.unwrap();

assert!(url.starts_with("https://cdn.example.com/images/by-path?"));
assert!(url.contains("keyId=public-dev"));
assert!(url.contains("signature="));

Optional watermark parameters for signed URL generation.

Each field other than the URL is None when the caller does not name it, and the server then applies the same default it applies to a watermark from any other adapter.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§url: String

The URL the watermark image is fetched from.

§position: Option<String>

Where to place the watermark, as the name the vocabulary uses.

§opacity: Option<u8>

Opacity of the watermark, 1 to 100.

§margin: Option<u32>

Margin in pixels from the nearest edge.

Implementations§

Source§

impl SignedWatermarkParams

Source

pub fn new(url: impl Into<String>) -> Self

Names the watermark image and leaves every other parameter to the server’s default.

A caller assigns the rest afterwards. The struct is #[non_exhaustive], so a parameter the watermark vocabulary gains later is a minor change rather than a breaking one.

Trait Implementations§

Source§

impl Debug for SignedWatermarkParams

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for SignedWatermarkParams

Source§

fn default() -> SignedWatermarkParams

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> To for T
where T: ?Sized,

Source§

fn to<T>(self) -> T
where Self: Into<T>,

Converts to T by calling Into<T>::into.
Source§

fn try_to<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Tries to convert to T by calling TryInto<T>::try_into.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.