<?php

/**
 * This class has been generated by dagger-php-sdk. DO NOT EDIT.
 */

declare(strict_types=1);

namespace Dagger;

/**
 * Source location information.
 */
class SourceMap extends Client\AbstractObject implements Client\IdAble
{
    /**
     * The column number within the line.
     */
    public function column(): int
    {
        $leafQueryBuilder = new \Dagger\Client\QueryBuilder('column');
        return (int)$this->queryLeaf($leafQueryBuilder, 'column');
    }

    /**
     * The filename from the module source.
     */
    public function filename(): string
    {
        $leafQueryBuilder = new \Dagger\Client\QueryBuilder('filename');
        return (string)$this->queryLeaf($leafQueryBuilder, 'filename');
    }

    /**
     * A unique identifier for this SourceMap.
     */
    public function id(): SourceMapId
    {
        $leafQueryBuilder = new \Dagger\Client\QueryBuilder('id');
        return new \Dagger\SourceMapId((string)$this->queryLeaf($leafQueryBuilder, 'id'));
    }

    /**
     * The line number within the filename.
     */
    public function line(): int
    {
        $leafQueryBuilder = new \Dagger\Client\QueryBuilder('line');
        return (int)$this->queryLeaf($leafQueryBuilder, 'line');
    }

    /**
     * The module dependency this was declared in.
     */
    public function module(): string
    {
        $leafQueryBuilder = new \Dagger\Client\QueryBuilder('module');
        return (string)$this->queryLeaf($leafQueryBuilder, 'module');
    }

    /**
     * The URL to the file, if any. This can be used to link to the source map in the browser.
     */
    public function url(): string
    {
        $leafQueryBuilder = new \Dagger\Client\QueryBuilder('url');
        return (string)$this->queryLeaf($leafQueryBuilder, 'url');
    }
}
